Re: [BLACKBOX] Go

From: Douglas G. Danforth <"Douglas>
Date: Tue, 17 Nov 2009 13:53:51 -0800

----boundary-LibPST-iamunique-480743490_-_- Content-type: text/plain I also note that the interface itself has this same characteristic (macro like expansion). From the Go documentation: "An interface may contain an interface type name T in place of a method specification. The effect is equivalent to enumerating the methods of T explicitly in the interface. type ReadWrite interface { Read(b Buffer) bool; Write(b Buffer) bool; } type File interface { ReadWrite; // same as enumerating the methods in ReadWrite Lock; // same as enumerating the methods in Lock Close(); }" -Doug Danforth Josef Templ wrote: I have to add this correction to my posting on go: go does have a form of inheritance on the level of struct by means of so-called 'anonymous fields'. They allow for a mixin OO style, which means that a struct T can be mixed into another struct S where S inherits all fields and type bound procedures of T (similar to a macro expansion). There can be multiple mixins in a struct but there is no compatibility between S and T unless you use an interface. - JT ----- Original Message ----- From: "Josef Templ" Hi Everybody! I have just scanned the Go language spec and it looks a lot like a mix from Oberon/CP and C with some interesting syntactical ideas borrowed from functional languages, I guess, but nothing really new. Regarding OO features it seems weak to me. It has type bound procedures but no inheritance. It doesn't even have type extension for records as the original Oberon introduced. (Please correct me if I missed something in the spec.) All it has is an interface type with structural equivalence rules. An interface is a purely abstract type that only specifies a set of method signatures. It is compatible with any type that has the appropriate set of type bound procedures, which is checked by the compiler. I guess it would be very hard to program something like the Oberon system with its many extensible message records in Go. The message records would have to be expressed by interfaces with setter and getter functions for accessing the record fields. And there is no subclassing for creating extended message types. It would also be very hard to program in a Java/C++-OO-style with tons of methods inherited by subclasses. These would have to be replicated by the programmer. May be they envision a new OO-programminig style that I am not aware of. This is at least my understanding from the language spec. A questionable point, in my oppinion, is the way exports are marked. Go uses the convention that a name starting with a capital letter is public. So when you decide to export a previously private name later on, you have to change that name. For me, the funniest part of the language spec is the name for threads in Go. They are called 'goroutines'. - JT ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-480743490_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8 IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIg fQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0 MSAgIH0NCntcKlxodG1sdGFnMTc3IDx0aXRsZT59DQp7XCpcaHRtbHRhZzI0MSB9DQp7XCpcaHRt bHRhZzE4NSA8L3RpdGxlPn0NCntcKlxodG1sdGFnMSBccGFyIH0NCntcKlxodG1sdGFnNDEgPC9o ZWFkPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnNTAgPGJvZHkgYmdjb2xvcj0i I2ZmZmZmZiIgdGV4dD0iIzAwMDAwMCI+fVxodG1scnRmIFx2aWV3a2luZDUNCntcKlxiYWNrZ3Jv dW5kIHtcc2hwe1wqXHNocGluc3R7XHNwe1xzbiBmaWxsQ29sb3J9e1xzdiAxNjc3NzIxNX19e1xz cHtcc24gZkZpbGxlZH17XHN2IDF9fX19fVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH17 XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgSSBhbHNvIG5vdGUgdGhhdCB0aGUgaW50 ZXJmYWNlIGl0c2VsZiBoYXMgdGhpcyBzYW1lDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Y2hhcmFjdGVyaXN0aWMgKG1h Y3JvIGxpa2UgZXhwYW5zaW9uKS4NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBc aHRtbHJ0ZjAgIEZyb20NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH10aGUgR28gZG9jdW1lbnRhdGlvbjoNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0iQW4gaW50ZXJmYWNlIG1heSBjb250YWluIGFuIGludGVyZmFjZSB0eXBl IG5hbWUgDQp7XCpcaHRtbHRhZzE0OCA8Y29kZT59XGh0bWxydGYge1xmMSBcZnMyMCBcaHRtbHJ0 ZjAgVA0Ke1wqXGh0bWx0YWcxNTYgPC9jb2RlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgaW4gcGxhY2Ugb2YgYSBtZXRob2Qgc3Bl Y2lmaWNhdGlvbi4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRoZSBl ZmZlY3QgaXMgZXF1aXZhbGVudCB0byBlbnVtZXJhdGluZyB0aGUgbWV0aG9kcyBvZiANCntcKlxo dG1sdGFnMTQ4IDxjb2RlPn1caHRtbHJ0ZiB7XGYxIFxmczIwIFxodG1scnRmMCBUDQp7XCpcaHRt bHRhZzE1NiA8L2NvZGU+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCBleHBsaWNpdGx5DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCBpbiB0aGUgaW50ZXJmYWNlLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntc KlxodG1sdGFnMTI4IDxwcmU+fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRm MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIHR5cGUgUmVhZFdyaXRlIGludGVyZmFjZSBce1xsaW5lDQpc dGFiIFJlYWQoYiBCdWZmZXIpIGJvb2w7XGxpbmUNClx0YWIgV3JpdGUoYiBCdWZmZXIpIGJvb2w7 XGxpbmUNClx9XGxpbmUNClxsaW5lDQp0eXBlIEZpbGUgaW50ZXJmYWNlIFx7XGxpbmUNClx0YWIg UmVhZFdyaXRlOyAgLy8gc2FtZSBhcyBlbnVtZXJhdGluZyB0aGUgbWV0aG9kcyBpbiBSZWFkV3Jp dGVcbGluZQ0KXHRhYiBMb2NrOyAgICAgICAvLyBzYW1lIGFzIGVudW1lcmF0aW5nIHRoZSBtZXRo b2RzIGluIExvY2tcbGluZQ0KXHRhYiBDbG9zZSgpO1xsaW5lDQpcfSJccGFyXGh0bWxydGZ9XGh0 bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wq XGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxy dGYwIC1Eb3VnIERhbmZvcnRoDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Sm9zZWYgVGVtcGwgd3Jv dGU6DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB7XCpcaHRtbHRhZzcy fVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZSBjaXRl PSJtaWQ6OUNCMjZFMzBFRTg0NEFENEJCQUVENkE4RDI5NDMxMTVATU9ERUNTSlQiXHBhciAgdHlw ZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0 ZiB7XGh0bWxydGYwIFxsaTM2MCBJIGhhdmUgdG8gYWRkIHRoaXMgY29ycmVjdGlvbiB0byBteSBw b3N0aW5nIG9uIGdvOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1nbyBkb2VzIGhhdmUgYSBmb3JtIG9mIGluaGVyaXRhbmNlIG9uIHRoZSBsZXZlbCBvZg0Ke1wq XGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgfQ0K e1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc0IFxwYXIgfXN0cnVjdCBieSBtZWFucyBvZiBzby1jYWxsZWQgJ2Fub255bW91cyBmaWVsZHMn Lg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfVRoZXkgYWxsb3cgZm9yIGEgbWl4aW4gT08gc3R5bGUsIHdoaWNoIG1l YW5zIHRoYXQNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH1hIHN0cnVjdCBUIGNhbiBiZSBtaXhlZCBpbnRvIGFub3Ro ZXIgc3RydWN0IFMgd2hlcmUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1TIGluaGVyaXRzIGFsbCBmaWVsZHMgYW5k IHR5cGUgYm91bmQgcHJvY2VkdXJlcyBvZiBUDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9KHNpbWlsYXIgdG8gYSBt YWNybyBleHBhbnNpb24pLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVRoZXJlIGNhbiBiZSBtdWx0aXBsZSBtaXhp bnMgaW4gYSBzdHJ1Y3QgYnV0DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0 bWxydGYwICB0aGVyZSBpcyBubw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfWNvbXBhdGliaWxpdHkgYmV0d2VlbiBT IGFuZCBUIHVubGVzcyB5b3UgdXNlIGFuIGludGVyZmFjZS4NCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LSBKVA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm ICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4 NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLS0gT3Jp Z2luYWwgTWVzc2FnZSAtLS0tLSBGcm9tOiAiSm9zZWYgVGVtcGwiDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCB7fQ0Ke1wqXGh0bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4 dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86Sm9zZWYuVGVtcGxAU09GVFdBUkUtVEVNUEwu Q09NIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAibWFpbHRvOkpvc2Vm LlRlbXBsQFNPRlRXQVJFLVRFTVBMLkNPTSJ9fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgSm9zZWYuVGVtcGxAU09GVFdB UkUtVEVNUEwuQ09NDQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCBcaHRt bHJ0ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59 DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQg ICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9VG86IHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxp bmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpCTEFDS0JPWEBMSVNUUy5PQkVST04uQ0giPn1caHRt bHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86QkxBQ0tCT1hATElTVFMu T0JFUk9OLkNIIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZs dDt9XGh0bWxydGYgPFxodG1scnRmMCBCTEFDS0JPWEBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1s dGFnODQgJmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAgXGh0bWxy dGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnOTIgPC9hPn0NCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1TZW50OiBG cmlkYXksIE5vdmVtYmVyIDEzLCAyMDA5IDk6NTMgQU0NCntcKlxodG1sdGFnNCBccGFyIH1caHRt bHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1TdWJqZWN0OiBS ZTogW0JMQUNLQk9YXSBHbw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfXtc KlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzk2IDxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFn NjR9XGh0bWxydGYge1xodG1scnRmMCBcbGk3MjAgSGkgRXZlcnlib2R5IQ0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9SSBoYXZlIGp1c3Qgc2Nhbm5lZCB0 aGUgR28gbGFuZ3VhZ2Ugc3BlYyBhbmQgaXQgbG9va3MgYSBsb3QNCntcKlxodG1sdGFnNCBccGFy IH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfWxp a2UgYSBtaXggZnJvbSBPYmVyb24vQ1AgYW5kIEMgd2l0aCBzb21lIGludGVyZXN0aW5nIHN5bnRh Y3RpY2FsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1s dGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH1pZGVhcyBib3Jyb3dlZCBmcm9tIGZ1bmN0aW9uYWwgbGFu Z3VhZ2VzLCBJIGd1ZXNzLCBidXQgbm90aGluZyByZWFsbHkNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIG5ldy4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAg ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfVJlZ2FyZGluZyBPTyBmZWF0dXJlcyBpdCBzZWVtcyB3ZWFrIHRvIG1l Lg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9SXQgaGFzIHR5cGUgYm91bmQgcHJvY2VkdXJlcyBidXQgbm8gaW5o ZXJpdGFuY2UuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JdCBkb2Vzbid0IGV2ZW4gaGF2ZSB0eXBlIGV4dGVu c2lvbiBmb3IgcmVjb3JkcyBhcyB0aGUgb3JpZ2luYWwgT2Jlcm9uDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCBpbnRyb2R1Y2VkLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9KFBsZWFz ZSBjb3JyZWN0IG1lIGlmIEkgbWlzc2VkIHNvbWV0aGluZyBpbiB0aGUgc3BlYy4pDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1BbGwgaXQgaGFzIGlzIGFu IGludGVyZmFjZSB0eXBlIHdpdGggc3RydWN0dXJhbCBlcXVpdmFsZW5jZSBydWxlcy4NCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0K e1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc0IFxwYXIgfUFuIGludGVyZmFjZSBpcyBhIHB1cmVseSBhYnN0cmFjdCB0eXBlIHRoYXQgb25s eSBzcGVjaWZpZXMgYSBzZXQgb2YNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfW1ldGhvZCBzaWduYXR1cmVzLiBJ dCBpcyBjb21wYXRpYmxlIHdpdGggYW55IHR5cGUgdGhhdCBoYXMNCntcKlxodG1sdGFnNCBccGFy IH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRo ZSBhcHByb3ByaWF0ZSBzZXQgb2YgdHlwZSBib3VuZCBwcm9jZWR1cmVzLCB3aGljaCBpcyBjaGVj a2VkDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH1ieSB0aGUgY29tcGlsZXIuDQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntc KlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JIGd1ZXNzIGl0IHdvdWxkIGJlIHZlcnkgaGFy ZCB0byBwcm9ncmFtIHNvbWV0aGluZyBsaWtlIHRoZSBPYmVyb24NCntcKlxodG1sdGFnNCBccGFy IH1caHRtbHJ0ZiAgXGh0bWxydGYwIHN5c3RlbSB3aXRoIGl0cyBtYW55IGV4dGVuc2libGUgbWVz c2FnZSByZWNvcmRzIGluIEdvLiBUaGUgbWVzc2FnZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9cmVjb3JkcyB3 b3VsZCBoYXZlIHRvIGJlIGV4cHJlc3NlZCBieSBpbnRlcmZhY2VzIHdpdGggc2V0dGVyIGFuZCBn ZXR0ZXINCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfWZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHRoZSByZWNvcmQg ZmllbGRzLiBBbmQgdGhlcmUgaXMgbm8gc3ViY2xhc3NpbmcNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIGZvcg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Y3JlYXRpbmcgZXh0ZW5kZWQg bWVzc2FnZSB0eXBlcy4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUl0IHdvdWxkIGFsc28gYmUgdmVyeSBoYXJk IHRvIHByb2dyYW0gaW4gYSBKYXZhL0MrKy1PTy1zdHlsZSB3aXRoIHRvbnMNCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIG9mIG1ldGhvZHMgaW5oZXJpdGVkIGJ5IHN1YmNs YXNzZXMuIFRoZXNlIHdvdWxkIGhhdmUgdG8gYmUgcmVwbGljYXRlZA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYnkgdGhlIHByb2dyYW1tZXIuDQp7XCpcaHRtbHRhZzQg XHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1NYXkgYmUgdGhleSBlbnZpc2lvbiBhIG5ldyBPTy1wcm9ncmFtbWluaWcgc3R5bGUgdGhhdA0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAg ICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9SSBhbSBub3QgYXdhcmUgb2YuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1UaGlzIGlzIGF0IGxlYXN0IG15IHVuZGVyc3RhbmRp bmcgZnJvbSB0aGUgbGFuZ3VhZ2Ugc3BlYy4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4 NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfUEgcXVlc3Rpb25hYmxlIHBvaW50LCBpbiBteSBvcHBpbmlvbiwg aXMgdGhlIHdheSBleHBvcnRzIGFyZSBtYXJrZWQuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1HbyB1c2VzIHRo ZSBjb252ZW50aW9uIHRoYXQgYSBuYW1lIHN0YXJ0aW5nIHdpdGggYSBjYXBpdGFsIGxldHRlciBp cw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgcHVibGljLg0Ke1wqXGh0 bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9U28gd2hlbiB5b3UgZGVjaWRlIHRvIGV4cG9ydCBhIHByZXZpb3VzbHkgcHJpdmF0 ZSBuYW1lIGxhdGVyIG9uLA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9eW91IGhhdmUgdG8gY2hhbmdlIHRoYXQg bmFtZS4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUZvciBtZSwgdGhlIGZ1bm5pZXN0IHBhcnQgb2YgdGhlIGxh bmd1YWdlIHNwZWMgaXMgdGhlIG5hbWUgZm9yIHRocmVhZHMNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIGluIEdvLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VGhleSBhcmUgY2FsbGVk ICdnb3JvdXRpbmVzJy4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfS0gSlQNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS0tLS0NCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fVRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tC T1giIHRvDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB7fQ0Ke1wqXGh0 bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86 TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZ UEVSTElOSyAibWFpbHRvOkxJU1RTRVJWQExJU1RTLk9CRVJPTi5DSCJ9fXtcZmxkcnNsdFxjZjFc dWwgXGh0bWxydGYwIExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSFxodG1scnRmIH1caHRtbHJ0ZjAg XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnOTIgPC9hPn0NCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fQ0Ke1wqXGh0bWx0YWc4NCAgIH17XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjAN Cg0Ke1wqXGh0bWx0YWcxMDQgPC9ibG9ja3F1b3RlPn1caHRtbHJ0ZiB9XHBhcg0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzEx MiA8YnI+fVxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc KlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxy dGYwIFxsaTM2MCAtLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCAN CntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNz YWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxp bmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1c aHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElT VFMuT0JFUk9OLkNIIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMu T0JFUk9OLkNIXGh0bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc5MiA8L2E+fQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH17XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQg PC9ibG9ja3F1b3RlPn1caHRtbHJ0ZiB9XHBhcg0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxw YXIgfQ0Ke1wqXGh0bWx0YWc1OCA8L2JvZHk+fQ0Ke1wqXGh0bWx0YWcyIFxwYXIgfQ0Ke1wqXGh0 bWx0YWcyNyA8L2h0bWw+fQ0Ke1wqXGh0bWx0YWczIFxwYXIgfQ0Ke1wqXGh0bWx0YWc2NCA8cD59 XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRh ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3Nh Z2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04u Q0gNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFxodG1scnRmfX0Aa0xt TlZXbFF4UlM1ek8= ----boundary-LibPST-iamunique-480743490_-_--- Received on Tue Nov 17 2009 - 22:53:51 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:40 UTC