- Hiding abstract methods

From: Douglas G. Danforth <"Douglas>
Date: Thu, 14 Jun 2007 19:35:19 -0700

----boundary-LibPST-iamunique-1593464420_-_- Content-type: text/plain Bob, I am trying to keep the amount of stuff shown to a minimum. There is also a procedure Run that is exported from M that when called starts up and eventually calls the installed reader and writer (repeatedly). The reader and writer do not invoke the hidden procedures they are passive and are called by M when needed. How do I hide the methods of A, Bits, and Ints? -Doug Danforth Bob Walkden wrote: How and when are M's internal procedures invoked? If the client's reader is to invoke them directly then they must be made public. If you want M's hidden procedures to be invoked indirectly by the reader or writer you may need to provide a couple of Notifier procedures in M and have the reader or writer call them explicitly. -- Regards, Bob _____ From: blackbox{([at]})nowhere.xySent: 14 June 2007 22:25 To: BlackBox Mailing List Subject: [BlackBox] - Hiding abstract methods Chris, Here is what I would like the interface to module M to appear DEFINITION M; TYPE A = POINTER TO ABSTRACT RECORD END; Bits = POINTER TO RECORD (A) x: POINTER TO ARRAY OF SET END; Ints = POINTER TO RECORD (A) x: POINTER TO ARRAY OF INTEGER END; Reader = PROCEDURE (VAR a: A): BOOLEAN; Writer = PROCEDURE (a: A); PROCEDURE InstallReader (rd: Reader); PROCEDURE InstallWriter (wr: Writer); END M. One just installs a specific reader that generates a Bits or an Ints. Internally to M there are many procedures that take the abstract quantity 'a' when a read operation is done and operate on it with procedures that are methods of type either Bits or Ints whose definitions are given internally and are abstractions of the of type A. But the user of M need not know anything about this and BlackBox should not force the user to see these methods. How can this be accomplished? -Doug Danforth CFB Software wrote: Hi Doug, I don't know if I can help but as nobody else has responded yet I'm willing to give it a try. I'm interested in learning more about the finer details of issues like this. However, I'm not sure from your desription that I understand exactly what you are trying to do. Would it be possible for you to show complete minimal examples of: a) What you would like the code to look like b) How you think it needs to be written to make it acceptable to Blackbox Regards, Chris Burrows CFB Software http://www.cfbsoftware.com/gpcp -----Original Message----- From: blackbox{([at]})nowhere.xy Behalf Of Douglas G. Danforth Sent: Wednesday, 13 June 2007 10:22 AM To: BlackBox Mailing List Subject: [BlackBox] - Hiding abstract methods Folks, I have a conceptual problem on which I would like your advice. I have an ABSTRACT type A and two concrete types C1 and C2 which are extensions of A. TYPE A* = POINTER TO ABSTRACT RECORD END; C1* = POINTER TO RECORD(A) END; C2* = POINTER TO RECORD(A) END; I would like to export A (as shown with the '*'') but within the module M where A is defined I *do not want* to export its methods. I want them to be completely hidden so that the user of M only needs to create the instance Ci (and fill its fields (not shown)) and pass Ci to the module M in which the specific methods appropriate to Ci are specified (but also not exported). Within M, procedures take 'a' (an instance of A which is either C1 or C2) and operates on it without knowledge of its concrete form. The methods of A are simply called and the concrete forms of those methods as C1 or C2 are actually run. Unfortunately, it seems that this scheme of things is not possible in BlackBox. I am forced to export the methods of A and also the methods of C1 and the methods of C2, greatly cluttering the interface to M when none of that information will be used by the person operating with M. Only the existence of A and the extensions C1 and C2 are needed. Is there a clean way to hide all of these methods? -Doug Danforth --- BlackBox --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy --- BlackBox --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy ----boundary-LibPST-iamunique-1593464420_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O30NCntcZjRcZnN3aXNzXGZjaGFyc2V0MCBBcmlhbDt9DQp7XGY1XGZzd2lzcyBUYWhvbWE7 fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7XHJl ZDBcZ3JlZW4wXGJsdWUyNTU7fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyNCAN CntcKlxodG1sdGFnMjQzIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0 LjAxIFRyYW5zaXRpb25hbC8vRU4iPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFn MTkgPGh0bWw+fQ0Ke1wqXGh0bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWczNCA8aGVhZD59DQp7 XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0MSAgIH0NCntcKlxodG1sdGFnMSBccGFy IH0NCntcKlxodG1sdGFnMjQxICAgfQ0Ke1wqXGh0bWx0YWcxNzcgPHRpdGxlPn0NCntcKlxodG1s dGFnMjQxIH0NCntcKlxodG1sdGFnMTg1IDwvdGl0bGU+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIgfQ0K e1wqXGh0bWx0YWc0MSA8L2hlYWQ+fQ0Ke1wqXGh0bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWc1 MCA8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0ZXh0PSIjMDAwMDAwIj59XGh0bWxydGYgXHZpZXdr aW5kNQ0Ke1wqXGJhY2tncm91bmQge1xzaHB7XCpcc2hwaW5zdHtcc3B7XHNuIGZpbGxDb2xvcn17 XHN2IDE2Nzc3MjE1fX17XHNwe1xzbiBmRmlsbGVkfXtcc3YgMX19fX19XGh0bWxydGYwIA0Ke1wq XGh0bWx0YWcwIFxwYXIgfXtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBCb2IsDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9SSBhbSB0cnlpbmcgdG8ga2VlcCB0aGUgYW1vdW50IG9mIHN0dWZmIHNob3duIHRv IGEgbWluaW11bS4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1UaGVyZSBpcyBhbHNvIGEgcHJvY2Vk dXJlIFJ1biB0aGF0IGlzIGV4cG9ydGVkIGZyb20gTSB0aGF0IHdoZW4gY2FsbGVkDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBzdGFydHMgdXAgYW5kIGV2ZW50dWFsbHkg Y2FsbHMgdGhlIGluc3RhbGxlZCByZWFkZXIgYW5kIHdyaXRlcg0Ke1wqXGh0bWx0YWc0IFxwYXIg fVxodG1scnRmICBcaHRtbHJ0ZjAgKHJlcGVhdGVkbHkpLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVRoZSByZWFkZXIg YW5kIHdyaXRlciBkbyBub3QgaW52b2tlIHRoZSBoaWRkZW4gcHJvY2VkdXJlcyB0aGV5IGFyZQ0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgcGFzc2l2ZSBhbmQgYXJlIGNh bGxlZCBieSBNIHdoZW4gbmVlZGVkLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUhvdyBkbyBJIGhp ZGUgdGhlIG1ldGhvZHMgb2YgQSwgQml0cywgYW5kIEludHM/DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9LURvdWcgRGFuZm9ydGgNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH1Cb2IgV2Fsa2RlbiB3cm90ZToNCntcKlxodG1sdGFnNCBccGFy IH1caHRtbHJ0ZiAgXGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRm MA0KDQp7XCpcaHRtbHRhZzk2IDxibG9ja3F1b3RlIGNpdGU9Im1pZDpBTUVUSFlTVDIxbzh5Zm9n a0pYMDAwMDAyNTZAYW1ldGh5c3QyLm9iZXJvbi5jaCJccGFyICB0eXBlPSJjaXRlIj59XGh0bWxy dGYgXHBhcg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQw ICAgfQ0Ke1wqXGh0bWx0YWcxNzYgPHRpdGxlPn0NCntcKlxodG1sdGFnMjQwIH0NCntcKlxodG1s dGFnMTg0IDwvdGl0bGU+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9 DQp7XCpcaHRtbHRhZzE2MCA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9 InRleHQvaHRtbDsgIj59DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0N CntcKlxodG1sdGFnMTYwIDxtZXRhIGNvbnRlbnQ9Ik1TSFRNTCA2LjAwLjYwMDAuMTY0ODEiIG5h bWU9IkdFTkVSQVRPUiI+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9 DQp7XCpcaHRtbHRhZzk2IDxkaXYgZGlyPSJsdHIiIGFsaWduPSJsZWZ0Ij59XGh0bWxydGYge1xs dHJwYXJcbHRyY2hccWwgXHFsIFxodG1scnRmMCB7XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRt bHJ0ZjAgXGxpMzYwIA0Ke1wqXGh0bWx0YWcxNDggPGZvbnQgY29sb3I9IiMwMDAwZmYiIGZhY2U9 IkFyaWFsIlxwYXIgIHNpemU9IjIiPn1caHRtbHJ0ZiB7XGNmMiBcZjQgXGZzMjAgXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc4NCA8c3BhbiBjbGFzcz0iNDEyNTMxMDIyLTE0MDYyMDA3Ij59XGh0bWxy dGYge1xodG1scnRmMCBIb3cgYW5kIHdoZW4NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRm IFwnYTBcaHRtbHJ0ZjAgYXJlIE0ncw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt bHJ0ZjAgaW50ZXJuYWwgcHJvY2VkdXJlcyBpbnZva2VkPyBJZiB0aGUgY2xpZW50J3MgcmVhZGVy IGlzIHRvIGludm9rZSB0aGVtDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCBkaXJlY3RseSB0aGVuIHRoZXkgbXVzdCBiZSBtYWRlIHB1YmxpYy4gSWYgeW91IHdhbnQgTSdz IGhpZGRlbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgcHJvY2VkdXJl cyB0byBiZSBpbnZva2VkIGluZGlyZWN0bHkgYnkgdGhlIHJlYWRlciBvciB3cml0ZXIgeW91IG1h eQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgbmVlZCB0byBwcm92aWRl IGEgY291cGxlIG9mIE5vdGlmaWVyIHByb2NlZHVyZXMgaW4gTQ0Ke1wqXGh0bWx0YWc4NCAmbmJz cDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCBhbmQgaGF2ZSB0aGUNCntcKlxodG1sdGFnNCBccGFy IH1caHRtbHJ0ZiAgXGh0bWxydGYwIHJlYWRlciBvciB3cml0ZXIgY2FsbCB0aGVtIGV4cGxpY2l0 bHkuDQp7XCpcaHRtbHRhZzkyIDwvc3Bhbj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1s dGFnMTU2IDwvZm9udD59XGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRm XHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFn OTYgPGRpdj59XGh0bWxydGYge1xodG1scnRmMCB7XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRt bHJ0ZjAgXGxpMzYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQg PC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRt bHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYge1xodG1scnRmMCB7XCpc aHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpMzYwIA0Ke1wqXGh0bWx0YWcxNDggPGZv bnQgc2l6ZT0iMiI+fVxodG1scnRmIHtcZnMyMCBcaHRtbHJ0ZjAgLS0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1SZWdh cmRzLA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1s cnRmMCBCb2IgDQp7XCpcaHRtbHRhZzE1NiA8L2ZvbnQ+fVxodG1scnRmIH1caHRtbHJ0ZjAge1wq XGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2 Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcy NDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0 YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxo dG1scnRmIFwnYTBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYw DQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1s cnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQw ICAgfQ0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZSBkaXI9Imx0ciJccGFyICBzdHlsZT0iYm9y ZGVyLWxlZnQ6IDJweCBzb2xpZCByZ2IoMCwgMCwgMjU1KTsgcGFkZGluZy1sZWZ0OiA1cHg7IG1h cmdpbi1sZWZ0OiA1cHg7IG1hcmdpbi1yaWdodDogMHB4OyI+fVxodG1scnRmIFxwYXINCntcbHRy cGFyXGx0cmNoXHFsIFxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFn MjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXYgY2xhc3M9Ik91dGxvb2tNZXNzYWdlSGVhZGVy IiBkaXI9Imx0ciIgYWxpZ249ImxlZnQiXHBhciAgbGFuZz0iZW4tdXMiPn1caHRtbHJ0ZiB7XGx0 cnBhclxsdHJjaFxxbCBccWwgXGxhbmcxMDMzIFxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFy IH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxociB0YWJpbmRleD0iLTEi Pn1caHRtbHJ0ZiB7XGYxXHFjXHFqXHVsZGIgXH4gX19fX18gXH5cbGluZVxwYXJ9DQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzAgIH17XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxp NzIwIA0Ke1wqXGh0bWx0YWcxNDggPGZvbnQgZmFjZT0iVGFob21hIiBzaXplPSIyIj59XGh0bWxy dGYge1xmNSBcZnMyMCBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0IDxiPn1caHRtbHJ0ZiB7XGIg XGh0bWxydGYwIEZyb206DQp7XCpcaHRtbHRhZzkyIDwvYj59XGh0bWxydGYgfVxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHt9DQp7XCpcaHRtbHRhZzg0 IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpibGFja2Jv eEBvYmVyb24uY2giPn1caHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWls dG86YmxhY2tib3hAb2Jlcm9uLmNoIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgYmxhY2ti b3hAb2Jlcm9uLmNoXGh0bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc5MiA8L2E+fSBbe30NCntcKlxodG1sdGFnODQgPGEgY2xhc3M9Im1vei10eHQtbGlu ay1mcmVldGV4dCIgaHJlZj0ibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCI+fVxodG1scnRmIHtc ZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgIm1haWx0bzpibGFja2JveEBvYmVyb24uY2gifX17 XGZsZHJzbHRcY2YxXHVsIFxodG1scnRmMCBtYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoXGh0bWxy dGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fV0g DQp7XCpcaHRtbHRhZzg0IDxiPn1caHRtbHJ0ZiB7XGIgXGh0bWxydGYwIE9uIEJlaGFsZiBPZiAN CntcKlxodG1sdGFnOTIgPC9iPn1caHRtbHJ0ZiB9XGh0bWxydGYwIERvdWdsYXMNCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIEcuIERhbmZvcnRoDQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzg0IDxiPn1caHRtbHJ0ZiB7XGIgXGh0bWxy dGYwIFNlbnQ6DQp7XCpcaHRtbHRhZzkyIDwvYj59XGh0bWxydGYgfVxodG1scnRmMCAgMTQgSnVu ZSAyMDA3IDIyOjI1DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRh Zzg0IDxiPn1caHRtbHJ0ZiB7XGIgXGh0bWxydGYwIFRvOg0Ke1wqXGh0bWx0YWc5MiA8L2I+fVxo dG1scnRmIH1caHRtbHJ0ZjAgIEJsYWNrQm94IE1haWxpbmcgTGlzdA0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWc4NCA8Yj59XGh0bWxydGYge1xiIFxodG1scnRm MCBTdWJqZWN0Og0Ke1wqXGh0bWx0YWc5MiA8L2I+fVxodG1scnRmIH1caHRtbHJ0ZjAgIFtCbGFj a0JveF0gLSBIaWRpbmcgYWJzdHJhY3QgbWV0aG9kcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4 NCAgICAgfQ0Ke1wqXGh0bWx0YWcxNTYgPC9mb250Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfXtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxo dG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntc KlxodG1sdGFnMCBccGFyIH17XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpNzIw IENocmlzLA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUhlcmUg aXMgd2hhdCBJIHdvdWxkIGxpa2UgdGhlIGludGVyZmFjZSB0byBtb2R1bGUgTSB0byBhcHBlYXIN CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1ERUZJTklUSU9OIE07 DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh Zzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9 XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwn YTBcaHRtbHJ0ZjAgIFRZUEUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1s cnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgDQp7 XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4 NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxo dG1scnRmIFwnYTBcaHRtbHJ0ZjAgIEEgPSBQT0lOVEVSIFRPIEFCU1RSQUNUIFJFQ09SRA0Ke1wq XGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgRU5EOw0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9 XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwn YTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYw ICANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJz cDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgQml0cyA9IFBPSU5URVIgVE8gUkVDT1JEIChBKQ0K e1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAN CntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh Zzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICANCntcKlxodG1sdGFnODQgJm5ic3A7 fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5i c3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIHg6IFBPSU5URVIgVE8gQVJSQVkgT0YgU0VUDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9 XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwn YTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYw ICBFTkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAm bmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1s cnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxo dG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBJbnRzID0gUE9JTlRF UiBUTyBSRUNPUkQgKEEpDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0 ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1s cnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wq XGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQg Jm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRt bHJ0ZiBcJ2EwXGh0bWxydGYwICANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgeDogUE9JTlRFUiBU TyBBUlJBWSBPRiBJTlRFR0VSDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRt bHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxo dG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31c aHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBFTkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg ICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wqXGh0bWx0YWc4NCAm bmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1s cnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0 bWxydGYwICBSZWFkZXIgPSBQUk9DRURVUkUgKFZBUiBhOiBBKTogQk9PTEVBTjsNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7 fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5i c3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIFdyaXRlciA9IFBST0NFRFVSRSAoYTogQSk7DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0 ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0 bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBc aHRtbHJ0ZjAgIFBST0NFRFVSRSBJbnN0YWxsUmVhZGVyIChyZDogUmVhZGVyKTsNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJz cDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgUFJPQ0VEVVJFIEluc3RhbGxXcml0ZXIgKHdyOiBX cml0ZXIpOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUVORCBN Lg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfU9uZSBqdXN0IGlu c3RhbGxzIGEgc3BlY2lmaWMgcmVhZGVyIHRoYXQgZ2VuZXJhdGVzIGEgQml0cyBvciBhbiBJbnRz Lg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfUludGVybmFsbHkgdG8gTSB0aGVyZSBhcmUgbWFueSBwcm9jZWR1cmVzIHRo YXQgdGFrZSB0aGUgYWJzdHJhY3QNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1xdWFudGl0eSAnYScgd2hlbiBhIHJlYWQg b3BlcmF0aW9uIGlzIGRvbmUgYW5kIG9wZXJhdGUgb24gaXQgd2l0aA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgcHJvY2VkdXJlcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoYXQgYXJlIG1l dGhvZHMgb2YgdHlwZSBlaXRoZXIgQml0cyBvciBJbnRzIHdob3NlIGRlZmluaXRpb25zIGFyZQ0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgZ2l2ZW4gaW50ZXJuYWxseQ0K e1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc0IFxwYXIgfWFuZCBhcmUgYWJzdHJhY3Rpb25zIG9mIHRoZSBvZiB0eXBlIEEuDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBCdXQgdGhlIHVzZXIgb2YgTSBu ZWVkIG5vdCBrbm93DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBhbnl0 aGluZw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfWFib3V0IHRoaXMgYW5kIEJsYWNrQm94IHNob3VsZCBub3QgZm9yY2Ug dGhlIHVzZXIgdG8gc2VlIHRoZXNlIG1ldGhvZHMuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0 ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9SG93IGNhbiB0aGlzIGJlIGFjY29tcGxpc2hlZD8NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tRG91ZyBEYW5mb3J0aA0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAg fQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfUNGQiBTb2Z0d2FyZSB3cm90ZToNCntcKlxodG1sdGFnNCBccGFyIH1caHRt bHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXtcKlxodG1sdGFnNzJ9XGh0bWxy dGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzk2IDxibG9ja3F1b3RlXHBhciAgY2l0ZT0i bWlkOkFNRVRIWVNUMnFmNjlhWmJMQVgwMDAwMDE3YkBhbWV0aHlzdDIub2Jlcm9uLmNoIiB0eXBl PSJjaXRlIj59XGh0bWxydGYgXHBhcg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N CntcKlxodG1sdGFnMjQwICAgICAgIH0NCntcKlxodG1sdGFnMTI4IDxwcmUgd3JhcD0iIj59XGh0 bWxydGYge1xwYXJkXHBsYWluXGYxXGZzMjAgXGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAg XGxpMTA4MCBIaSBEb3VnLFxsaW5lDQpcbGluZQ0KSSBkb24ndCBrbm93IGlmIEkgY2FuIGhlbHAg YnV0IGFzIG5vYm9keSBlbHNlIGhhcyByZXNwb25kZWQgeWV0IEknbVxsaW5lDQp3aWxsaW5nIHRv IGdpdmUgaXQgYSB0cnkuIEknbSBpbnRlcmVzdGVkIGluIGxlYXJuaW5nIG1vcmUgYWJvdXQgdGhl XGxpbmUNCmZpbmVyIGRldGFpbHMgb2YgaXNzdWVzIGxpa2UgdGhpcy4gSG93ZXZlciwgSSdtIG5v dCBzdXJlIGZyb20geW91clxsaW5lDQpkZXNyaXB0aW9uIHRoYXQgSSB1bmRlcnN0YW5kIGV4YWN0 bHkgd2hhdCB5b3UgYXJlIHRyeWluZyB0byBkby4gV291bGQgaXRcbGluZQ0KYmUgcG9zc2libGUg Zm9yIHlvdSB0byBzaG93IGNvbXBsZXRlIG1pbmltYWwgZXhhbXBsZXMgb2Y6IFxsaW5lDQpcbGlu ZQ0KYSkgV2hhdCB5b3Ugd291bGQgbGlrZSB0aGUgY29kZSB0byBsb29rIGxpa2UgXGxpbmUNClxs aW5lDQpiKSBIb3cgeW91IHRoaW5rIGl0IG5lZWRzIHRvIGJlIHdyaXR0ZW4gdG8gbWFrZSBpdCBh Y2NlcHRhYmxlIHRvXGxpbmUNCkJsYWNrYm94XGxpbmUNClxsaW5lDQpSZWdhcmRzLFxsaW5lDQpD aHJpcyBCdXJyb3dzXGxpbmUNCkNGQiBTb2Z0d2FyZVxsaW5lDQp7fQ0Ke1wqXGh0bWx0YWc4NCA8 YSBtb3otZG8tbm90LXNlbmQ9InRydWUiIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiXHBh ciAgaHJlZj0iaHR0cDovL3d3dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcCI+fVxodG1scnRmIHtcZmll bGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgImh0dHA6Ly93d3cuY2Zic29mdHdhcmUuY29tL2dwY3Ai fX17XGZsZHJzbHRcY2YxXHVsIFxodG1scnRmMCBodHRwOi8vd3d3LmNmYnNvZnR3YXJlLmNvbS9n cGNwXGh0bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5 MiA8L2E+fVxsaW5lDQpcbGluZQ0KICBcaHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1s dGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K e1wqXGh0bWx0YWcyNDAgICAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZSB0eXBlPSJj aXRlIj59XGh0bWxydGYgXHBhcg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc KlxodG1sdGFnMjQwICAgICAgICAgfQ0Ke1wqXGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRt bHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBc bGkxNDQwIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tXGxpbmUNCkZyb206IHt9DQp7XCpcaHRt bHRhZzg0IDxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIgY2xhc3M9Im1vei10eHQtbGluay1hYmJy ZXZpYXRlZCJccGFyICBocmVmPSJtYWlsdG86YmxhY2tib3hAb2Jlcm9uLmNoIj59XGh0bWxydGYg e1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCJ9 fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYwIGJsYWNrYm94QG9iZXJvbi5jaFxodG1scnRmIH1c aHRtbHJ0ZjAgXGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnOTIgPC9hPn0gW3t9DQp7 XCpcaHRtbHRhZzg0IDxhXHBhciAgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBjbGFzcz0ibW96LXR4 dC1saW5rLWZyZWV0ZXh0IlxwYXIgIGhyZWY9Im1haWx0bzpibGFja2JveEBvYmVyb24uY2giPn1c aHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86YmxhY2tib3hAb2Jl cm9uLmNoIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgbWFpbHRvOmJsYWNrYm94QG9iZXJv bi5jaFxodG1scnRmIH1caHRtbHJ0ZjAgXGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFn OTIgPC9hPn1dIE9uIFxsaW5lDQpCZWhhbGYgT2YgRG91Z2xhcyBHLiBEYW5mb3J0aFxsaW5lDQpT ZW50OiBXZWRuZXNkYXksIDEzIEp1bmUgMjAwNyAxMDoyMiBBTVxsaW5lDQpUbzogQmxhY2tCb3gg TWFpbGluZyBMaXN0XGxpbmUNClN1YmplY3Q6IFtCbGFja0JveF0gLSBIaWRpbmcgYWJzdHJhY3Qg bWV0aG9kc1xsaW5lDQpcbGluZQ0KXGxpbmUNCkZvbGtzLFxsaW5lDQpcbGluZQ0KSSBoYXZlIGEg Y29uY2VwdHVhbCBwcm9ibGVtIG9uIHdoaWNoIEkgd291bGQgbGlrZSB5b3VyIGFkdmljZS5cbGlu ZQ0KXGxpbmUNCkkgaGF2ZSBhbiBBQlNUUkFDVCB0eXBlIEEgYW5kIHR3byBjb25jcmV0ZSB0eXBl cyBDMSBhbmRcbGluZQ0KQzIgd2hpY2ggYXJlIGV4dGVuc2lvbnMgb2YgQS5cbGluZQ0KXGxpbmUN CiAgICBUWVBFXGxpbmUNCiAgICAgICBBKiA9IFBPSU5URVIgVE8gQUJTVFJBQ1QgUkVDT1JEIEVO RDtcbGluZQ0KICAgICAgIEMxKiA9IFBPSU5URVIgVE8gUkVDT1JEKEEpIEVORDtcbGluZQ0KICAg ICAgIEMyKiA9IFBPSU5URVIgVE8gUkVDT1JEKEEpIEVORDtcbGluZQ0KXGxpbmUNCkkgd291bGQg bGlrZSB0byBleHBvcnQgQSAoYXMgc2hvd24gd2l0aCB0aGUgJyonJykgYnV0IHdpdGhpbiB0aGVc bGluZQ0KbW9kdWxlIE0gd2hlcmUgQSBpcyBkZWZpbmVkIEkgKmRvIG5vdCB3YW50KiB0byBleHBv cnQgaXRzXGxpbmUNCm1ldGhvZHMuICBJIHdhbnQgdGhlbSB0byBiZSBjb21wbGV0ZWx5IGhpZGRl biBzbyB0aGF0IHRoZSB1c2VyXGxpbmUNCm9mIE0gb25seSBuZWVkcyB0byBjcmVhdGUgdGhlIGlu c3RhbmNlIENpIChhbmQgZmlsbCBpdHMgXGxpbmUNCmZpZWxkcyAobm90IHNob3duKSlcbGluZQ0K YW5kIHBhc3MgQ2kgdG8gdGhlIG1vZHVsZSBNIGluIHdoaWNoIHRoZSBzcGVjaWZpYyBtZXRob2Rz IFxsaW5lDQphcHByb3ByaWF0ZSB0byBDaVxsaW5lDQphcmUgc3BlY2lmaWVkIChidXQgYWxzbyBu b3QgZXhwb3J0ZWQpLiAgV2l0aGluIE0sIHByb2NlZHVyZXMgdGFrZSAnYSdcbGluZQ0KKGFuIGlu c3RhbmNlIG9mIEEgd2hpY2ggaXMgZWl0aGVyIEMxIG9yIEMyKSBhbmQgb3BlcmF0ZXMgb24gaXQg d2l0aG91dFxsaW5lDQprbm93bGVkZ2Ugb2YgaXRzIGNvbmNyZXRlIGZvcm0uICBUaGUgbWV0aG9k cyBvZiBBIGFyZSBzaW1wbHkgY2FsbGVkXGxpbmUNCmFuZCB0aGUgY29uY3JldGUgZm9ybXMgb2Yg dGhvc2UgbWV0aG9kcyBhcyBDMSBvciBDMiBhcmUgYWN0dWFsbHlcbGluZQ0KcnVuLlxsaW5lDQpc bGluZQ0KVW5mb3J0dW5hdGVseSwgaXQgc2VlbXMgdGhhdCB0aGlzIHNjaGVtZSBvZiB0aGluZ3Mg aXMgbm90IHBvc3NpYmxlIGluIFxsaW5lDQpCbGFja0JveC5cbGluZQ0KSSBhbSBmb3JjZWQgdG8g ZXhwb3J0IHRoZSBtZXRob2RzIG9mIEEgYW5kIGFsc28gdGhlIG1ldGhvZHMgb2YgQzEgYW5kXGxp bmUNCnRoZSBtZXRob2RzIG9mIEMyLCBncmVhdGx5IGNsdXR0ZXJpbmcgdGhlIGludGVyZmFjZSB0 byBNIHdoZW4gXGxpbmUNCm5vbmUgb2YgdGhhdFxsaW5lDQppbmZvcm1hdGlvbiB3aWxsIGJlIHVz ZWQgYnkgdGhlIHBlcnNvbiBvcGVyYXRpbmcgd2l0aCBNLiAgXGxpbmUNCk9ubHkgdGhlIGV4aXN0 ZW5jZVxsaW5lDQpvZiBBIGFuZCB0aGUgZXh0ZW5zaW9ucyBDMSBhbmQgQzIgYXJlIG5lZWRlZC5c bGluZQ0KXGxpbmUNCklzIHRoZXJlIGEgY2xlYW4gd2F5IHRvIGhpZGUgYWxsIG9mIHRoZXNlIG1l dGhvZHM/XGxpbmUNClxsaW5lDQotRG91ZyBEYW5mb3J0aFxsaW5lDQpcbGluZQ0KLS0tIEJsYWNr Qm94XGxpbmUNCi0tLSBzZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byB7fQ0Ke1wq XGh0bWx0YWc4NCA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiXHBhciAgY2xhc3M9Im1vei10eHQt bGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCI+fVxodG1s cnRmIHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgIm1haWx0bzpibGFja2JveEBvYmVyb24u Y2gifX17XGZsZHJzbHRcY2YxXHVsIFxodG1scnRmMCBibGFja2JveEBvYmVyb24uY2hcaHRtbHJ0 ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XGxp bmUNCiAgICBcaHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1c aHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAg ICAgICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9ibG9ja3F1b3RlPn1caHRtbHJ0ZiB9XHBhcg0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgICAgfQ0Ke1wq XGh0bWx0YWcxMjggPHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBc aHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGkxMDgwIA0Ke1wqXGh0bWx0YWcyNDQgPCEt LS0tPn1cbGluZQ0KLS0tIEJsYWNrQm94XGxpbmUNCi0tLSBzZW5kIHN1YmplY3QgSEVMUCBvciBV TlNVQlNDUklCRSB0byB7fQ0Ke1wqXGh0bWx0YWc4NCA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUi XHBhciAgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmJsYWNr Ym94QG9iZXJvbi5jaCI+fVxodG1scnRmIHtcZmllbGR7XCpcZmxkaW5zdHtIWVBFUkxJTksgIm1h aWx0bzpibGFja2JveEBvYmVyb24uY2gifX17XGZsZHJzbHRcY2YxXHVsIFxodG1scnRmMCBibGFj a2JveEBvYmVyb24uY2hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzkyIDwvYT59XGxpbmUNClxsaW5lDQpcbGluZQ0KICBcaHRtbHJ0ZlxwYXJ9XGh0 bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wq XGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnMTA0IDwv YmxvY2txdW90ZT59XGh0bWxydGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFy IH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9ibG9ja3F1b3RlPn1caHRt bHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9i bG9ja3F1b3RlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wq XGh0bWx0YWc1OCA8L2JvZHk+fQ0Ke1wqXGh0bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNyA8 L2h0bWw+fQ0Ke1wqXGh0bWx0YWczIH19AGFyDQo= ----boundary-LibPST-iamunique-1593464420_-_--- Received on Fri Jun 15 2007 - 04:35:19 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:31:32 UTC