Re: Banned on MDN for adding referer warnings, please help.
R0b0t1 <[email protected]> Mon, 8 Oct 2018 17:23:30 -0500
| Newsgroups | gmane.comp.mozilla.security |
|---|---|
| Message-ID | <CAAD4mYhsYQMnzUJeaUd6wg0BcrdfhatVqgF4rLFNzMZrEKLy1w@mail.gmail.com> |
T24gTW9uLCBPY3QgOCwgMjAxOCBhdCAyOjQ4IFBNIEJpbCBDb3JyeSA8YmlsQGNvcnJ5LmJpej4g d3JvdGU6Cj4KPiBIaSBNYXJrLAo+Cj4gV293LCB0aGVyZSdzIGEgbG90IHRvIHVucGFjayBpbiB0 aGlzIGVtYWlsIHRocmVhZC4KPgo+IEknbSBub3QgY2xlYXIgd2hhdCB5b3UncmUgYXNraW5nIGZv ciwgSSB0aGluayB5b3Ugd2FudCBjb21tdW5pdHkgc3VwcG9ydCB0bwo+IGFkZCBiYWNrIGluIHlv dXIgd2FybmluZyBiYW5uZXJzIHJlZ2FyZGluZyByZWZlcnJlciBwcml2YWN5IGlzc3Vlcy4gIElm IHNvLAo+IHBsZWFzZSBzZW5kIGEgbmV3IGVtYWlsIHRvIHRoZSBjb21tdW5pdHkgYXNraW5nIGZv ciBvcGluaW9ucyBhYm91dCBhZGRpbmcgYQo+IHdhcm5pbmcgYmFubmVyIGFuZCBtZW50aW9uIHRo YXQgTW96aWxsYSBpcyBhZ2FpbnN0IGFkZGluZyB0aGUgYmFubmVycywgYnV0Cj4gcGxlYXNlIGRv IG5vdCBxdW90ZSB0aGlzIGVudGlyZSB0aHJlYWQuICBJIGhhdmUgc29tZSB0aG91Z2h0cyBhYm91 dCB5b3VyCj4gYXNrLCBidXQgdGhpcyB0aHJlYWQgaXMgbm93IHVuZm9ydHVuYXRlbHkgYWJvdXQg dGhlIG5hdHVyZSBvZiB5b3VyCj4gZGlzYWdyZWVtZW50IHdpdGggTW96aWxsYSBpbnN0ZWFkIG9m IHRoZSBzdWJzdGFuY2UuICBBIG5ldyB0aHJlYWQgd2lsbAo+IGFsbG93IHlvdSB0byBzZWVrIGNv bW11bml0eSBmZWVkYmFjayBhYm91dCB5b3VyIHNwZWNpZmljIGFzay4KPgo+IFJlZ2FyZGluZyBN b3ppbGxhJ3MgYmVoYXZpb3IgYW5kIHlvdXIgb3duOyBteSBpbnRlcnByZXRhdGlvbiByZWFkaW5n Cj4gdGhyb3VnaCB0aGUgdGhyZWFkIGlzIHRoYXQgTW96aWxsYSBoZWFyZCB5b3VyIGZlZWRiYWNr LCBpbmNvcnBvcmF0ZWQgaXQKPiBpbnRvIE1ETiBhY2NvcmRpbmcgdG8gaG93IHRoZXkgbWFuYWdl IHRoZWlyIGNvbnRlbnQsIGFuZCBhc2tlZCB5b3Ugbm90IHRvCj4gYWRkIHRoZSB3YXJuaW5nIGxh YmVsLiAgSXQgZXNjYWxhdGVkIGFuZCB0aGV5IHJldm9rZWQgeW91ciBhY2Nlc3MgdG8gbW9kaWZ5 Cj4gY29udGVudC4KPgoKSWYgdGhleSBkaWQgYmFuIGhpbSB3aXRoIG5vIHdhcm5pbmcgZm9yIHBy b3Bvc2luZyBhIGZlYXR1cmUoPykgdGhlbiBJCnRoaW5rIGl0IGlzIHdvcnRoIG1lbnRpb25pbmcu IFRoZXJlIGhhdmUgYmVlbiBvdGhlciB2ZXJ5IHN0cmFuZ2UKZXhlY3V0aXZlIGRlY2lzaW9ucyB0 aGF0IEkgdGhpbmsgbmVlZCBkaXNjdXNzZWQgYXMgd2VsbCwgbW9zdGx5CnJlbGF0ZWQgdG8gaG93 IGFkcyBhcmUgc2VydmVkIGluIEZpcmVmb3gsIGJ1dCBJIGRvbid0IHdhbnQgdG8gYnJpbmcKdGhl bSB1cCByaWdodCBub3cuCgpDaGVlcnMsCiAgICBSMGIwdDEKCj4KPiAtIEJpbAo+Cj4KPiBPbiBN b24sIE9jdCA4LCAyMDE4IGF0IDk6MzYgQU0gTWFyayBSaWNoYXJkcyA8bWFyay5hbGFuLnJpY2hh cmRzQGdtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gSGV5Cj4gPgo+ID4gSSd2ZSBoYWQgbXkgTURO IGFjY291bnQgYmFubmVkIGZvciB0cnlpbmcgdG8gYWRkIHJlZmVyZXIgd2FybmluZ3Mgb250byA8 YT4KPiA+IGFuZCA8aW1nPiBlbGVtZW50cyBvciB3b3JzZSBiYW5uZWQgZm9yIGludm9sdmluZyBh dXRob3JpdGllcyB3aG8gYXJlCj4gPiBpbnZlc3RpZ2F0aW5nIHRoZSBtZXNzIG9mIG1pY3JvdGFy Z2V0aW5nLiBJdCBhcHBlYXJzIE1ETiBhcmUgcmVmdXNpbmcgYQo+ID4gd2FybmluZyBvbiB0aGUg Z3JvdW5kcyBpdCBpc24ndCBhIG5pY2UgcHJlc2VudGF0aW9uLCByZWdhcmRsZXNzIG9mIGhvdwo+ ID4gaXJyZXNwb25zaWJsZSBpdCBpcyB0byBub3QgaW5jbHVkZSBpdC4KPiA+Cj4gPiBJIG5lZWQg aGVscCBhbmQgYXMgdGhlIHNlY3VyaXR5IGRldnMgSSBob3BlIGdpdmVuIHRoZSBleHRlbnQgdG8g d2hpY2gKPiA+IEZpcmVmb3ggaGFzIGFkZGVkIGNvbmZpZyBmZWF0dXJlcyBhbmQgcG9saWNpZXMg dG8gdHJ5IHRvIHJlZHVjZSB0aGUgcmVmZXJlcgo+ID4gbWVzcyB0aGVyZSBhcmUgY29tbXVuaXR5 IG1lbWJlcnMgd2hvIHVuZGVyc3RhbmQgaG93IHNpZ25pZmljYW50IHRoaXMgaXMuCj4gPiBXaGF0 ZXZlciBGaXJlZm94IHRyaWVzLCBvdGhlciBicm93c2VycyBoYXZlIGEgYmlnZ2VyIG1hcmtldCBz aGFyZS4KPiA+IERvY3VtZW50aW5nIHRoZSByZWZlcmVyIHJpc2tzIGluIE1ETiBkb2VzIHN0YW5k IGEgY2hhbmNlIG9mIGJldHRlcgo+ID4gZWR1Y2F0aW5nIGRldmVsb3BlcnMgc28gdGhleSBzdGFy dCBwYXlpbmcgYXR0ZW50aW9uIHRvIHRoZWlyIHRoaXJkIHBhcnRpZXMKPiA+IGFuZCBmb3IgbWFu eSBpdCBpcyBpbXBlcmF0aXZlIHRvIGRvIHNvIGdpdmVuIEdEUFIgY2hhbmdlcy4KPiA+Cj4gPiBB IGRldmVsb3BlciBJIGtub3cgd2hvIHJlY2VudGx5IGZpbmlzaGVkIGEgdGhyZWUgbW9udGggaW50 ZW5zaXZlIGNvdXJzZSBvbgo+ID4gdGhlIHdlYiBhZHZpc2VkIHRoZXJlIHdhcyBubyBjb3ZlcmFn ZSBvZiByZWZlcmVyLCB3aGljaCBtYXRjaGVzIG15IENTCj4gPiBkZWdyZWUgZXhwZXJpZW5jZSBv dmVyIGEgZGVjYWRlIGFnby4gVGhpcyBpc24ndCBhIG9uZS1vZmYgdG8gbWUsIEkgaGF2ZSBtZXQK PiA+IG1hbnkgZGV2ZWxvcGVycyB3aG8gZG9uJ3QgdW5kZXJzdGFuZCB0aGUgcmlzayBvciBldmVu IGhhdmUgbWlzY29uY2VwdGlvbnMKPiA+IGFib3V0IGhvdyBpdCB3b3JrcyAobGlrZSB0aGlua2lu ZyBpdCdzIG5vdCBzZW50IG9uIGh0dHBzIHNpdGVzKS4gSG93ZXZlcgo+ID4gdGhpcyBkZXZlbG9w ZXIgZGlkIHNheSB0aGUgY291cnNlIHVzZWQgTUROIHRvIHRlYWNoIGFib3V0IHRoZSB3ZWIgZmVh dHVyZXMKPiA+IGFuZCB0aGlzIG1hdGNoZXMgbXkgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZSwgTURO IGlzIHZlcnkgbXVjaCByZXNwZWN0ZWQgYnkKPiA+IHRoZSBEZXYgY29tbXVuaXR5LiBJdCBtYXkg d2VsbCBiZSB0aGUgY2FzZSBNRE4gaGFzIGEgZ3JlYXRlciBtYXJrZXQgc2hhcmUKPiA+IGluIHRo ZSBEZXYgY29tbXVuaXR5IGFzIGFuIGVkdWNhdGlvbmFsIHJlc291cmNlLCB0aGFuIEZpcmVmb3gg ZG9lcyB3aXRoCj4gPiBjb25zdW1lcnMgYXMgYSBicm93c2VyLgo+ID4KPiA+IFRoZSBNb3ppbGxh IHNlY3VyaXR5IGJsb2cgaGFzIGJlZW4gbXVsdGlwbGUgcmVmZXJlbmNlcyB0byByZWZlcmVycyBv dmVyIHRoZQo+ID4geWVhcnMsIGJ1dCBtb3N0IHBlb3BsZSBhcmUgc3RpbGwgaGF2aW5nIHRoZWly IGJyb3dzZXIgaGlzdG9yeSBkaXN0cmlidXRlZAo+ID4gcGllY2VtZWFsIGJ5IGl0LiBCcm93c2Vy cyBzdGlsbCBkb24ndCBwcm90ZWN0IHJlZmVyZXJzIGJ5IGRlZmF1bHQgYW5kIGV2ZW4KPiA+IGlm IHRoYXQgY2hhbmdlZCB0b21vcnJvdyBpdCBtaWdodCBiZSA1LTEwIHllYXJzIGJlZm9yZSBldmVy eW9uZSB1cGdyYWRlcwo+ID4gdGhlaXIgdmFyaW91cyBkZXZpY2VzLgo+ID4KPiA+IGh0dHBzOi8v YmxvZy5tb3ppbGxhLm9yZy9zZWN1cml0eS8yMDE1LzAxLzIxL21ldGEtcmVmZXJyZXIvCj4gPgo+ ID4gaHR0cHM6Ly9ibG9nLm1vemlsbGEub3JnL3NlY3VyaXR5LzIwMTgvMTAvMDIvc3VwcG9ydGlu Zy1yZWZlcnJlci1wb2xpY3ktZm9yLWNzcy1pbi1maXJlZm94LTY0Lwo+ID4KPiA+IGh0dHBzOi8v YmxvZy5tb3ppbGxhLm9yZy9zZWN1cml0eS8yMDE4LzAxLzMxL3ByZXZlbnRpbmctZGF0YS1sZWFr cy1ieS1zdHJpcHBpbmctcGF0aC1pbmZvcm1hdGlvbi1pbi1odHRwLXJlZmVycmVycy8KPiA+Cj4g PiBXaXRoIEdEUFIsIHRoZSBydWxlcyBjaGFuZ2VkIGFuZCBhcmUgYmVpbmcgY29waWVkIGluIG90 aGVyIGp1cmlzZGljdGlvbnMuCj4gPiBCdXNpbmVzc2VzIG11c3QgaGF2ZSBhY2NvdW50YWJpbGl0 eSBhbmQgcHJpdmFjeSBieSBkZWZhdWx0LCBzbyByZWZlcmVyIGlzCj4gPiBpbiBjb25mbGljdCB3 aXRoIGxvY2FsIGxlZ2lzbGF0aW9uIG5vdCBqdXN0IGJlY2F1c2UgcHJpdmFjeSBvciBzZWN1cml0 eQo+ID4gYnJlYWNoZXMgbWF5IGhhdmUgaGFwcGVuZWQsIGJ1dCBwcmltYXJpbHkgYmVjYXVzZSBh IGJ1c2luZXNzIGhhcyB0byBhc3Nlc3MsCj4gPiBkb2N1bWVudCBhbmQgZGVjaWRlIG9uIHRoZSBy aXNrcyBvZiB3aGljaCBzeXN0ZW1zIGdldCBkYXRhIGFib3V0IGEgdXNlciBvZgo+ID4gdGhlaXIg c2l0ZXMuIFByb2ZpbGluZyBvZiB1c2VycywgbWFkZSBwb3NzaWJsZSBieSByZWZlcmVycyBieSBk ZWZhdWx0LCB3YXMKPiA+IG9uZSBvZiB0aGUgbW90aXZlcyBmb3IgR0RQUiBzbyBpcyByaWdodGx5 IHBhcnQgb2YgcmVndWxhdG9ycyBpbnZlc3RpZ2F0aW9ucwo+ID4gbm93LCBidXQgSSdtIG5vdCBz dXJlIHRoZSByZWd1bGF0b3JzIHJlYWxpc2VkIHRoYXQgdGhlIHRlY2huaWNhbCBmZWF0dXJlIGF0 Cj4gPiB0aGUgY2VudHJlIG9mIGl0IGlzIHRoZSByZWZlcmVyIGFuZCBob3cgYnJva2VuIHRoZSB3 ZWIgaXMgZm9yIHByaXZhY3kuCj4gPiBUcmFja2luZyBwaXhlbHMgYXJlIGFuIGltYWdlLCBhIGNv b2tpZSBhbmQgcmVmZXJlcnMuLi4gVGhlIGNvb2tpZXMgaGF2ZQo+ID4gbG9uZyBiZWVuIHBhcnQg b2YgZGF0YSBwcm90ZWN0aW9uIGRpc2N1c3Npb25zIGFuZCBsYXdzLCB5ZXQgeW91IGNhbiBwcm9m aWxlCj4gPiBzb21lb25lIHdpdGhvdXQgYSBjb29raWUgKElQIGFkZHJlc3MpIHlvdSBjYW4ndCBk byBpdCB3aXRob3V0IHRoZSByZWZlcmVyCj4gPiAodW5sZXNzIGV4cGxpY2l0bHkgYWRkIHRoZSBz YW1lIGZ1bmN0aW9uYWxpdHkgYnkgY29kZSB0byB0aGUgdXJsLCBhdCB3aGljaAo+ID4gcG9pbnQg aXQgaXMgYW4gZXhwbGljaXQgYWN0IGFuZCBjYW4gYmUganVzdGlmaWVkIGJ5IHRoZSBhdXRob3Ip LiBNYW55Cj4gPiBwbGFjZXMgc2hvdWxkbid0IGdldCBhIHJlZmVyZXIsIGxpa2UgQ0ROcy4gTW9z dCBDRE5zIG5lZWQgdG8ga25vdyB3aG8gdG8KPiA+IGNoYXJnZSAoQVBJIGtleT8pIG5vdCBhIGZ1 bGwgcmVmZXJlci4KPiA+Cj4gPiBDaGluYSBpcyB2ZXJ5IGludGVyZXN0aW5nLCB0aGUgaGVhZGxp bmVzIGFyZW4ndCBuZWNlc3NhcmlseSBmaW5lcyBmb3IgZGF0YQo+ID4gcHJvdGVjdGlvbiB2aW9s YXRpb25zIGJ1dCBvdmVyIDExMDAwIGFycmVzdHMuIEhvdyBtYW55IG9mIHRob3NlIGFyZSB3ZWIK PiA+IGRldmVsb3BlcnMgb3IgZGlyZWN0b3JzIG9mIGNvbXBhbmllcyBiZWNhdXNlIG9mIHRoZWly IHdlYnNpdGU/IEhvdyBtYW55Cj4gPiB3aWxsIGl0IGJlIGluIHRoZSBmdXR1cmUgYXMgcmVndWxh dG9ycyByZWFsaXNlIGl0J3Mgbm90IHRoZSBhZCBjb21wYW5pZXMKPiA+IHRoYXQgc3RlYWwgdGhp cyBkYXRhLCBidXQgaXQncyBnaXZlbiBhd2F5IGJ5IHdlYnNpdGVzIHByb3RlY3RpbmcgdXNlcnMK PiA+IHJlZmVyZXJzPwo+ID4KPiA+IGh0dHBzOi8vYXNpYS5uaWtrZWkuY29tL0J1c2luZXNzL0J1 c2luZXNzLVRyZW5kcy9DaGluYS1zLXN0cmljdC1uZXctY3liZXJzZWN1cml0eS1sYXctZW5zbmFy ZXMtSmFwYW5lc2UtY29tcGFuaWVzCj4gPiAuCj4gPgo+ID4gVUsgaGFzIGNyaW1pbmFsIHByb3Nl Y3V0aW9uIG9wdGlvbnMgaW4gaXRzIGRhdGEgcHJvdGVjdGlvbiBsYXdzIGFuZCBJIGhvcGUKPiA+ IHRoYXQgdGhvc2UgaW4gdGhlIFVLIHJlc3BvbnNpYmxlIGZvciBrZWVwaW5nIHRyYWNraW5nIG9u IHRoZSBOSFMgd2Vic2l0ZQo+ID4gZmFjZSBjcmltaW5hbCBwcm9zZWN1dGlvbiAodGhleSBoYWQg YW1wbGUgd2FybmluZyBnaXZlbiBpdCBoaXQgdGhlIG5ld3MgaW4KPiA+IDIwMTApLCBidXQgd2hh dCBpcyBvZnRlbiBhbWF6aW5nIGluIHJhaXNpbmcgY29tcGxhaW50cyAod2hpY2ggSSd2ZSBiZWVu Cj4gPiBkb2luZyBmb3IgeWVhcnMgbm93IHJlbGF0aW5nIHRvIHJlZmVyZXIgbGVha3MpIGlzIGhv dyBvZnRlbiBJJ20gYWR2aXNlZCBieQo+ID4gY29tcGFuaWVzIHRoZXkgZG9uJ3Qgc2VuZCBwZXJz b25hbCBkYXRhLCBldmVuIHdoZW4gdGhleSBsb2FkIHRyYWNraW5nIG9uCj4gPiBtZW1iZXJzaGlw IHBhZ2VzIG9yIHNpbWlsYXIgdGhhdCBnaXZlIGF3YXkgZGF0YSB0aGF0IG1pZ2h0IHB1dCBsaXZl cyBhdAo+ID4gcmlzayBpbiB0aGUgd3JvbmcgaGFuZHMgKHZhcmlvdXMgVUsgcG9saXRpY2FsIHBh cnRpZXMgaGF2ZSBhIGhpc3Rvcnkgb2YKPiA+IGJlaW5nIHRhcmdldGVkIGJ5IHRlcnJvcmlzbSBh bmQgdGhleSBzZW50IHRoZWlyIG1lbWJlcnNoaXAgbGlzdHMgdG8gYWQKPiA+IGNvbXBhbmllcyBi eSBsb2FkaW5nIHRyYWNraW5nIG9uIG1lbWJlcnMgb25seSBhcmVhcywgSSd2ZSBiZWVuIGFkdmlz ZWQgYnkgYQo+ID4gbWFqb3IgVUsgcG9saXRpY2FsIHBhcnR5IHRoYXQgdGhleSdyZSB1bmRlciBp bnZlc3RpZ2F0aW9uIGZvciB0cmFja2luZykuCj4gPgo+ID4gRm9yIGFueW9uZSBoYW5kcyBvbiB3 aXRoIHByaXZhY3kgaW1wYWN0IGFzc2Vzc21lbnRzLCB5b3UnbGwga25vdyB5b3UgaGF2ZQo+ID4g dG8gZG9jdW1lbnQgd2hpY2ggc3lzdGVtcyBhbmQgdGhpcmQgcGFydGllcyBnZXQgcGVyc29uYWwg ZGF0YSBhbmQgYSB1c2VyJ3MKPiA+IGJyb3dzaW5nIGhhYml0cyBsaW5rZWQgdG8ganVzdCBhbiBJ UCBhZGRyZXNzLCBuZXZlcm1pbmQgY29va2llcywgaXMKPiA+IHBlcnNvbmFsIGRhdGEgKG1vc3Qg b2YgdXMgaGF2aW5nIHJlbGF0aXZlbHkgbG9uZyBsaXZlZCBJUCBhZGRyZXNzZXMsIGV2ZW4KPiA+ IHdoZW4gbm90IHN0YXRpYywgbGlrZSB0aG9zZSB1bmlxdWUgdG8gb3VyIG1vYmlsZSBkZXZpY2Ug b3IgZmFtaWx5Cj4gPiBpbnRlcm5ldCkuIElmIGRldmVsb3BlcnMgYXJlbid0IHRoaW5raW5nIGFi b3V0IHJlZmVyZXJzLCB0aGV5J3JlIG5vdAo+ID4gY29tcGxldGluZyB0aGVpciBwcml2YWN5IGlt cGFjdCBhc3Nlc3NtZW50cyBwcm9wZXJseSBvciBhZHZpc2luZyB0aGVpciBkYXRhCj4gPiBwcm90 ZWN0aW9uIG9mZmljZXIvbWFuYWdlbWVudCBwcm9wZXJseSBhYm91dCB0aGlyZCBwYXJ0aWVzIHRo YXQgbWF5IGJlCj4gPiBhZGRlZCBvdXRzaWRlIG9mIERldiB3b3JrZmxvd3MuIEJ5IG5vdCBkb2lu ZyB0aGlzIHdvcmsgdGhleSdyZSB1bmxpa2VseSB0bwo+ID4gYmVpbmcgcHJpdmF0ZSBieSBkZWZh dWx0L2Rlc2lnbi4uLnRoZXkncmUgbGlrZWx5IGJyZWFjaGluZyBHRFBSIGFuZAo+ID4gc2ltaWxh ci4KPiA+Cj4gPiBJJ20gcmVhbGx5IGFwcGFsbGVkIGF0IENocmlzIGZvciB0ZWFyaW5nIGRvd24g dGhpcyB3YXJuaW5nLCBidXQgbGVzcyBzbyBvZgo+ID4gTW96aWxsYSBpZiBpdCdzIGp1c3QgYSBj b3VwbGUgb2YgZ3V5cyB3aG8gdGhpbmsgcHJlc2VudGF0aW9uIGlzIG1vcmUKPiA+IGltcG9ydGFu dCB0aGFuIHByaXZhY3kgYW5kIHNlY3VyaXR5LiBXaGljaCBpcyBpdD8gQ2FuIHlvdSBoZWxwIGZp eCB0aGlzCj4gPiBtZXNzLiBXaGF0ZXZlciB3ZWIgYnJvd3NlcnMgZG8gYWJvdXQgcmVmZXJlcnMs IGF0IGxlYXN0IG1ha2UgaXQgYSBwcmlvcml0eQo+ID4gdG8gdGVsbCB3ZWIgZGV2ZWxvcGVycyBz byB0aGV5IGNhbiBwcm90ZWN0IHVzZXJzIGluc3RlYWQuCj4gPgo+ID4gUmVnYXJkaW5nIHRoZSBz ZWN1cml0eSBhc3BlY3QsIHBsZWFzZSBsb29rIGF0IGhvdyBtYW55IHdlYnNpdGVzIHlvdSB1c2Ug aW4KPiA+IHlvdXIgcGFzc3dvcmQgbWFuYWdlciBhbmQgc3RhcnQgcmVzZXR0aW5nIHlvdXIgcGFz c3dvcmRzLiBZb3UgbWlnaHQgYmUKPiA+IGFtYXplZCBhdCBob3cgbWFueSBhZCBjb21wYW5pZXMg Z2V0IHRva2VucyB0byB0YWtlIG92ZXIgdXNlciBhY2NvdW50cywgaG93Cj4gPiBsb25nIGxpdmVk IHRoZXkgYXJlIGFuZCBob3cgbWFueSBhcmUgcmUtdXNhYmFsZSBmb3IgZGF5cy4uIE9uZSBmaW5h bmNlCj4gPiBjb21wYW55IGFkdmlzZWQgbWUgNSUgb2YgdGhlaXIgcmVzZXQgcGFzc3dvcmQgcmVx dWVzdHMgaW52b2x2ZWQgbXVsdGlwbGUKPiA+IElQcyBhcyB1c2VycyBkaWRuJ3QgY29tcGxldGUg dGhlIGZpcnN0IGF0dGVtcHQgYW5kIGhvcGVmdWxseSBqdXN0IGNoYW5nZWQKPiA+IGRldmljZSBv ciBuZXR3b3JrLiBNZWFud2hpbGUgVVJMcyBhcmUgb2Z0ZW4gYSBwbGFjZSBvZiBzZWN1cml0eSBm YWlsaW5ncwo+ID4gbGlrZSBqc2Vzc2lvbmlkIGluIHRoZSBVUkwgb3IgZXZlbiB1c2VybmFtZXMg YW5kIHBhc3N3b3JkcyBmb3Igc3RhcnR1cHMgd2hvCj4gPiBhY2NpZGVudGFsbHkgdXNlIEdFVCBp bnN0ZWFkIG9mIFBPU1QgZm9yIGEgZm9ybSBvciBqdXN0IHVzZXJzIHdobyB0eXBlIGEKPiA+IHBh c3N3b3JkIGFuZCBwcmVzcyBlbnRlci4gVGhlIHNoYXJpbmcgbGluayBwcm9ibGVtIGhpdCBEcm9w Ym94IHByZXZpb3VzbHkKPiA+IHdoZXJlIGlmIHlvdSBvcGVuZWQgY29udGVudCBpbiBEcm9wYm94 IHRoYXQgaW5jbHVkZWQgYSBsaW5rIHRvIGEgdGhpcmQKPiA+IHBhcnR5LCB0aGF0IHRoaXJkIHBh cnR5IHdhcyBzZW50IHRoZSByZWZlcmVyICh0aGUgc2hhcmUgbGluaykKPiA+IGh0dHBzOi8vd3d3 LmdyYWhhbWNsdWxleS5jb20vZHJvcGJveC12dWxuZXJhYmlsaXR5LXByaXZhY3kvCj4gPiBEcm9w Ym94IGhhdmUgaG9wZWZ1bGx5IGZpeGVkIHRoaXMsIGJ1dCB3aGF0IHdpbGwgdGhlIG5leHQgcG9w dWxhciB1c2VyCj4gPiBjb250ZW50IHNpdGUgZG8/IFdlIGtlZXAgcmVwZWF0aW5nIHRoZSBzYW1l IG1pc3Rha2VzIHdoZW4gaXQgY29tZXMgdG8KPiA+IHJlZmVyZXIgYW5kIGEgdmVyeSBvYnZpb3Vz IHJlYXNvbiBmb3IgcmVwZWF0aW5nIGEgbWlzdGFrZSBpbiBhIGNvbW11bml0eSBpcwo+ID4gYSBs YWNrIG9mIGVkdWNhdGlvbiBhYm91dCBob3cgZWFzeSBpdCBpcyB0byBtYWtlIHRoYXQgbWlzdGFr ZS4KPiA+Cj4gPiBSZWdhcmRzCj4gPiBNYXJrCj4gPgo+ID4KPiA+Cj4gPgo+ID4gLS0tLS0tLS0t LSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0KPiA+IEZyb206IE1hcmsgUmljaGFyZHMgPG1h cmsuYWxhbi5yaWNoYXJkc0BnbWFpbC5jb20+Cj4gPiBEYXRlOiBGcmksIDUgT2N0IDIwMTgsIDEz OjI1Cj4gPiBTdWJqZWN0OiBSZTogRWRpdHMgdG8gPGE+IGFuZCA8aW1nPiBwYWdlcyBvbiBNRE4K PiA+IFRvOiA8aW5jbHVzaW9uQG1vemlsbGEuY29tPiwgQ2hyaXMgTWlsbHMgPGNtaWxsc0Btb3pp bGxhLmNvbT4KPiA+IENjOiBHZW9mZiBXaGl0ZSA8Z2VvZmZAZ3doaXRlLmluZm8+LCA8Y2FzZXdv cmtAaWNvLm9yZy51az4sIEN1c3RvbWVyCj4gPiBDb250YWN0IENlbnRyZSA8Y29uc3VtZXIucXVl cmllc0BmY2Eub3JnLnVrPgo+ID4KPiA+Cj4gPiBDaHJpcywKPiA+Cj4gPiBXaGF0IGlzIHdyb25n IHdpdGggdGhlIGFjdGlvbiBvZiB0cnlpbmcgdG8gcHJvdGVjdCB1c2Vycz8KPiA+IFdoeSBkbyB5 b3UgcGVyY2VpdmUgdGhhdCBhY3Rpb24gYXMgd3Jvbmc/Cj4gPgo+ID4gSSd2ZSBleHBsYWluZWQg bXkgYXR0aXR1ZGUgYW5kIHRoZSBjb250ZW50LCBoYXMgYWx3YXlzIGJlZW4gdG8gcHJvdGVjdAo+ ID4gcGVvcGxlLiBUaGUgY29udGVudCBoYXMga2VwdCB0byB0aGF0IG5hcnJhdGl2ZSBhbmQgSSBk b24ndCBuZWVkIHRvIHdyaXRlIGFuCj4gPiBlc3NheSB0byBqdXN0aWZ5IGFueXRoaW5nIG1vcmUg dGhhbiBpcyBvYnZpb3VzIGZyb20gd2hhdCBJJ3ZlIHdyaXR0ZW4uIFlvdXIKPiA+IHF1ZXN0aW9u cyBhcmUgbm90IGEgcmVxdWlyZW1lbnQgZm9yIG90aGVyIGNvbnRyaWJ1dG9ycyBhbmQgSSdtIG5v dCBzdXJlCj4gPiB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIG1vZGVyYXRlIGJ5IG1lIGFuc3dlcmlu ZyB0aGVtPyBEbyB5b3Ugd2FudCB0bwo+ID4gbW9kZXJhdGUgd2hhdCBraW5kcyBvZiBwZW9wbGUg Y2FuIGNvbnRyaWJ1dGUgb3IganVzdCB3aGV0aGVyIHRoZWlyCj4gPiBjb250cmlidXRpb25zIGFy ZSBhcHByb3ByaWF0ZT8KPiA+Cj4gPiBJZiBNb3ppbGxhJ3MgcG9zaXRpb24gaXMgdGhhdCBhbnlv bmUgd2hvIHR1cm5zIHRvIHJlZ3VsYXRvcnMgYW5kCj4gPiBqb3VybmFsaXN0cyB0byByYWlzZSBh d2FyZW5lc3Mgb2YgYW4gaXNzdWUgc2hvdWxkIGJlIGJhbm5lZCBmcm9tCj4gPiB2b2x1bnRlZXJp bmcgdGhlaXIgdGltZSwgdGhlbiBJIHRoaW5rIHRoZSByZWd1bGF0b3JzIHNob3VsZCBpbnZlc3Rp Z2F0ZQo+ID4gd2hldGhlciB0aGlzIGJyZWFjaGVzIGxhd3MgZm9yIHByb3RlY3RpbmcgZGlzY2xv c3VyZSBpbiB0aGUgcHVibGljCj4gPiBpbnRlcmVzdC4gT3JnYW5pc2F0aW9ucyBhcmUgbm90IHN1 cHBvc2VkIHRvIHB1bmlzaCBpbmRpdmlkdWFscyBmb3IgdGhlIGFjdAo+ID4gb2YgaW52b2x2aW5n IHJlZ3VsYXRvcnMgYW5kIHlvdXIganVzdGlmaWNhdGlvbiBmb3IgYmFubmluZyBtZSBhcHBlYXJz IHRvIGJlCj4gPiBiYXNlZCBpbiBwYXJ0IG9uIHRoZSBjbGFpbSBJJ3ZlICJ0aHJlYXRlbmVkIiBi eSBpbnZvbHZpbmcgdGhlbS4gU29ycnksIGJ1dAo+ID4gd2hhdGV2ZXIgdGhyZWF0IHlvdSBwZXJj ZWl2ZSwgaXQncyBqdXN0aWZpZWQuIExpa2Ugd2hlbiBzb21lb25lIGNhbGxzIHRoZQo+ID4gcG9s aWNlLCBpZiB0aGV5IHNwb3Qgc29tZXRoaW5nIHdyb25nIGFuZCB0aGV5IGRvbid0IGhhdmUgY29u dHJvbCBvdmVyIGl0Li4uCj4gPiBUaGV5IGludm9sdmUgYXV0aG9yaXRpZXMgdGhhdCBjYW4gcHJv dGVjdCBvdGhlcnMgb3IgcmVhY3QuIFlvdSBkb24ndCBhcHBlYXIKPiA+IHRvIHJlY29nbmlzZSB0 aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJlaW5nIGNoYWxsZW5nZWQgYW5kIGJlaW5nCj4gPiB0aHJl YXRlbmVkLi4uIEl0J3Mgbm90IG5pY2UgdG8gYmUgb24gdGhlIHJlY2VpdmluZyBlbmQsIGJ1dCB0 aGF0IGRvZXNuJ3QKPiA+IGp1c3RpZnkgcGVuYWxpc2luZyB0aGUgcGVyc29uIHdobyBjaGFsbGVu Z2VkIHlvdS4KPiA+Cj4gPiBSZWdhcmRpbmcgeW91ciBtb2RlcmF0aW5nLi4KPiA+IE11bHRpcGxl IHBlb3BsZSBoYXZlIHRyaWVkIHRvIHB1dCB0aGUgd2FybmluZyBvbiB0aGUgd2ViIGRvY3MgYW5k IHlvdSd2ZQo+ID4gdG9ybiBpdCBkb3duLiBNb3ppbGxhIGlzIHN1cHBvc2VkIHRvIGJlIGEgY29t bXVuaXR5IGRyaXZlbiBwcm9qZWN0LCB5ZXQKPiA+IHlvdSd2ZSBzaHVubmVkIHRoZSBjb21tdW5p dHkuIERvIHRoaW5rIEkgbWlzbGVkIHRob3NlIHVzZXJzIG9yIGRvIHlvdSB0aGluawo+ID4gSSBl eHBsYWluZWQgdGhlIHNpdHVhdGlvbiBob25lc3RseSBhbmQgdGhleSB3ZXJlIGFwcGFsbGVkIHRv bz8KPiA+Cj4gPiBMZXQncyBiZSBjbGVhci4uLgo+ID4KPiA+IElmIGEgdGVhY2hlciBzaG93cyBr aWRzIGhvdyB0byB1c2Ugc2Npc3NvcnMgYW5kIGRvZXNuJ3QgdGVsbCB0aGVtIHRoZQo+ID4gZGFu Z2VycyBvZiBzaGFycCBvYmplY3RzLCBub3QgdG8gcnVuIHdpdGggdGhlbSwgaG93IHRvIGhvbGQg dGhlbSBzYWZlbHksCj4gPiBldGMgdW50aWwgYW4gb3B0aW9uYWwgZnVydGhlciBsZXNzb24sIEkn ZCBob3BlIHRoZXkgY291bGQgYmUgamFpbGVkIGlmIG1hZGUKPiA+IGF3YXJlIG9mIHRoZSBlcnJv ciBvZiB0aGVpciB3YXlzIGFuZCB0b2xkIG9mIG51bWVyb3VzIGluY2lkZW50cyBhbHJlYWR5LAo+ ID4gdGhleSBjb250aW51ZSByZWdhcmRsZXNzLgo+ID4KPiA+IFlvdSB0byBtZSBhcmUgbGlrZSB0 aGF0IHRlYWNoZXIuLi4gWW91IGFyZSB0ZWFjaGluZyB3ZWIgZGV2ZWxvcGVycyBob3cgdG8KPiA+ IGNyZWF0ZSB3ZWJzaXRlcywgd2l0aG91dCBleHBsYWluaW5nIHRoYXQgYnkgZGVmYXVsdCB0aGV5 IHdpbGwgYnJlYWsgdGhlIGxhdwo+ID4gaW4gbWFueSBjb3VudHJpZXMgYW5kIG1vcmUgaW1wb3J0 YW50bHksIHRoZXknbGwgYmUgYnJlYWNoaW5nIHVzZXIgcHJpdmFjeQo+ID4gd2hpY2ggaXMgYSBo dW1hbiByaWdodCBiZXlvbmQgd2hldGhlciBsb2NhbCBsYXdzIGhhdmUgY2F1Z2h0IHVwLgo+ID4K PiA+IFlvdXIgYWN0aW9ucyBhbmQgYXR0aXR1ZGUgc3VnZ2VzdCB5b3UgY2Fubm90IGJlIHJlYXNv bmVkIHdpdGguIFlvdSByZWZ1c2UKPiA+IHRvIGFja25vd2xlZGdlIHRoZSBjb25mbGljdCB3aXRo IHNvY2lhbCBub3JtcyBhbmQgdGhhdCBubyByZWFzb25hYmxlIHBlcnNvbgo+ID4gY2FuIGFjY2Vw dCB5b3VyIGRlbGV0aW9uIG9mIHRoZSB3YXJuaW5nLiBOb2JvZHkgaW4gdGhlaXIgcmlnaHQgbWlu ZCB0YWtlcwo+ID4gZG93biBhIHdhcm5pbmcgc2lnbiB3aGVuIHRoZXJlIGlzIHNpZ25pZmljYW50 IGV2aWRlbmNlIHRoYXQgcGVvcGxlIG5lZWQgaXQKPiA+IGFuZCBhcmUgc3VmZmVyaW5nLgo+ID4K PiA+IEJpbGxpb25zIG9mIHBlb3BsZSBhcmUgYmVpbmcgc3VydmVpbGxlZCBieSB0aGUgYWQgaW5k dXN0cnksIHRoZXJlIGlzIGFuCj4gPiBpbmNyZWRpYmxlIGludmFzaW9uIG9mIHByaXZhY3kgYXQg dGhlIGNlbnRyZSBvZiB0aGUgUmVmZXJlciBsZWFraW5nIHVzZXJzCj4gPiB3ZWIgaGlzdG9yeS4g V2hhdGV2ZXIgcGVvcGxlIGNhbXBhaWduIGFib3V0IGNoYW5naW5nIHRoZSB3ZWIsIE1vemlsbGEg YXMgYW4KPiA+IG9yZ2FuaXNhdGlvbiB0aGF0IG1ha2VzIGEgd2ViIGJyb3dzZXIgYW5kIG9mZmVy cyBkb2N1bWVudGF0aW9uIGZvciB3ZWIKPiA+IGRldmVsb3BlcnMsIHNob3VsZCBub3QgYmUgZGVs ZXRpbmcgd2FybmluZ3Mgb2YgdGhpcyBhbmQgaXQgcHV0cyBpbnRvCj4gPiBxdWVzdGlvbiBNb3pp bGxhJ3MgcHVycG9zZSwgYXMgaXQncyBhIG5vdCBmb3IgcHJvZml0LCBvYmxpZ2VkIHRvIGFjdCBm b3IKPiA+IHRoZSBwdWJsaWMgYmVuZWZpdCwgdGhpcyBhcHBlYXJzIHRvIGJlIGFuIGludGVudCB0 byBwdXQgcGVvcGxlIGluIGhhcm1zCj4gPiB3YXkuCj4gPgo+ID4gQWdhaW4sIHBsZWFzZSB0YWtl IGEgc3RlcCBiYWNrIGFuZCBjb25zaWRlciB0aGlzIGZyb20gdGhlIHBvc2l0aW9uIG9mCj4gPiBz b21lb25lIHdobyBoYXMgcmVhbGlzZWQgaG93IHNpZ25pZmljYW50IHRoZSBoYXJtIG9mIHRoZSBy ZWZlcmVyIGlzLCB0b29rCj4gPiB0aGUgdGltZSB0byBhZGQgYSB3YXJuaW5nIHRvIHByb3RlY3Qg b3RoZXJzIGFuZCBoYWQgaXQgdGFrZW4gZG93bi4KPiA+Cj4gPiBSZWdhcmRzCj4gPiBNYXJrCj4g Pgo+ID4KPiA+Cj4gPgo+ID4gT24gVGh1LCAyNyBTZXAgMjAxOCBhdCAxMjoxMywgQ2hyaXMgTWls bHMgPGNtaWxsc0Btb3ppbGxhLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBIaSBNYXJrLAo+ID4gPgo+ ID4gPiBJIGdldCB5b3VyIGZpcnN0IHBvaW50IGhlcmUuIFRoZSB0cm91YmxlIGhvd2V2ZXIgd2l0 aCBzdWNoIHNpdHVhdGlvbnMgaXMKPiA+ID4gdGhhdCB0aGUgaW50ZW50IGRvZXNu4oCZdCByZWFs bHkgbWF0dGVyIGlmIGhvdyBvdGhlcnMgcGVyY2VpdmUgeW91ciBhY3Rpb25zCj4gPiA+IGNvbWVz IG91dCB3cm9uZ2x5L2JhZGx5Lgo+ID4gPgo+ID4gPiBZZXMsIHdlIGFyZSBhIGNvbW11bml0eSBz aXRlLCBhbmQgd2Ugc3BlbmQgYSBsb3Qgb2YgdGltZSBtZW50b3JpbmcKPiA+ID4gY29tbXVuaXR5 IG1lbWJlcnMsIGhlbHBpbmcgdGhlbSBnZXQgY29udGVudCB1cCBvbmxpbmUsIHNldHRsaW5nIGRp c3B1dGVzLAo+ID4gPiBldGMuIEJ1dCBvbmUga2V5IGZlYXR1cmUgb2YgYSBjb21tdW5pdHkgaXMg dGhhdCB0aGVyZSBhcmUgbW9kZXJhdG9ycywgYW5kCj4gPiA+IGlmIGEgbW9kZXJhdG9yIGFza3Mg eW91IHRvIHN0b3AgZG9pbmcgc29tZXRoaW5nLCB0aGV5IHByb2JhYmx5IGhhdmUgYQo+ID4gZ29v ZAo+ID4gPiByZWFzb24gZm9yIGRvaW5nIHNvLiBGcm9tIHRoZSBtb2RlcmF0b3LigJlzIHBvaW50 IG9mIHZpZXcsIGl0IGlzIGEgcmVhbCByZWQKPiA+ID4gZmxhZyBpZiBhIG5ldyBjb21tdW5pdHkg bWVtYmVyIGlzIGFza2VkIHRvIHN0b3AgZG9pbmcgc29tZXRoaW5nLCBhbmQgdGhleQo+ID4gPiBy ZXNwb25kIGJ5IGlnbm9yaW5nIHlvdSBhbmQgc2VuZGluZyB5b3UgbG9uZywgYWdncmVzc2l2ZSBt YWlscyB0aGF0IGFyZQo+ID4gPiBwZXJjZWl2ZWQgYXMgc2hvdXR5IGFuZCB0aHJlYXRlbmluZy4g SSBiYW5uZWQgeW91IGJlY2F1c2UgSSBob25lc3RseQo+ID4gZGlkbuKAmXQKPiA+ID4gZmVlbCB0 aGVyZSB3YXMgYW55IG90aGVyIHdheSBmb3J3YXJkLiBJIGRpZG7igJl0IGJlbGlldmUgdGhhdCBy ZWFzb25pbmcKPiA+IHdpdGgKPiA+ID4geW91IHdvdWxkIHdvcmsgYmVjYXVzZSB5b3Ugc2VlbWVk IHVucmVhc29uYWJsZSwgaW4gdGhlIGxpdGVyYWwgc2Vuc2Ugb2YKPiA+IHRoZQo+ID4gPiB3b3Jk Lgo+ID4gPgo+ID4gPiBJIGFsc28gYWNrbm93bGVkZ2UgdGhhdCB5b3UgZGlkbuKAmXQgZGlyZWN0 bHkgdGhyZWF0ZW4gYW55b25lLCBidXQgc2V2ZXJhbAo+ID4gPiB0aW1lcyB5b3UgdXNlZCBwcm9z ZSBhbG9uZyB0aW1lIGxpbmVzIG9mIOKAnGFsbCBvZiB0aGVzZSBiYWQgdGhpbmdzIHdpbGwKPiA+ ID4gYmVmYWxsIHBlb3BsZSB3aG8gcmVhZCB5b3VyIHBhZ2VzIGlmIEkgZG9u4oCZdCBnZXQgbXkg d2F54oCdLCB3aGljaCBkb2VzIGNvbWUKPiA+ID4gYWNyb3NzIGFzIHRocmVhdGVuaW5nLCBhbGJl aXQgaW5kaXJlY3RseS4gQW5kIGNj4oCZaW5nIHJlZ3VsYXRvcnkgYm9kaWVzCj4gPiBhbmQKPiA+ ID4gam91cm5hbGlzdHMgb24gdGhlIG1haWwgc2VydmVzIHRvIG1ha2UgdXMgZmVlbCBidWxsaWVk LCBsaWtlIGEgd2l0Y2gKPiA+IGh1bnQuCj4gPiA+IEFnYWluLCB0aGlzIGlzbuKAmXQgZ29pbmcg dG8gbWFrZSB1cyBtb3JlIGxpa2VseSB0byBsaXN0ZW4gdG8geW91ciBwb2ludCBvZgo+ID4gPiB2 aWV3Lgo+ID4gPgo+ID4gPiBBbnl3YXksIHdlIGNvdWxkIGFyZ3VlIGFib3V0IHRoZSBtaW51dGlh ZSBvZiBvdXIgaW50ZXJhY3Rpb25zIGFsbCBkYXkKPiA+ID4gbG9uZywgYnV0IGl0IHdvdWxkIHBy b2JhYmx5IGJlIG1vcmUgcHJvZHVjdGl2ZSB0byBkcmF3IGEgbGluZSBpbiB0aGUgc2FuZAo+ID4g PiBhbmQgZG8gYmV0dGVyIGdvaW5nIGZvcndhcmQuCj4gPiA+Cj4gPiA+IC0tLS0tLQo+ID4gPgo+ ID4gPiBJIG5vdyBiZWxpZXZlIHdlIGNhbiBtYWtlIHNvbWUgcHJvZ3Jlc3Mg4oCUIGluIHRoaXMg bGFzdCBtYWlsIHlvdSBoYXZlCj4gPiBzaG93bgo+ID4gPiBzb21lIGVtcGF0aHkgdG93YXJkcyBv dXIgc2l0dWF0aW9uLiBJ4oCZZCBsaWtlIHRvIGFmZm9yZCB5b3UgdGhlIHNhbWUgZ29vZAo+ID4g PiB0cmVhdG1lbnQsIGFuZCBzYXkgc29ycnkgaWYgb3VyIGFjdGlvbnMgY2FtZSBhY3Jvc3MgYXMg YWdncmVzc2l2ZS4gSSBhbHNvCj4gPiA+IGJlbGlldmUgdGhhdCB5b3UgaGF2ZSBnb29kIGludGVu dGlvbnMg4oCUIHlvdSB3YW50IHRvIGNvbnRyaWJ1dGUgdG8gYSBtb3JlCj4gPiA+IHNlY3VyZSwg cHJpdmFjeS1hd2FyZSB3ZWIsIGFuZCBJIHRoaW5rIHlvdSBzaG91bGQgYmUgYXBwbGF1ZGVkIGZv ciB0aGF0Lgo+ID4gSQo+ID4gPiBhZ3JlZSB3aXRoIG1hbnkgb2YgeW91ciBwb2ludHM7IEnigJl2 ZSBiZWVuIGEgd2ViIGRldmVsb3BlciBhbmQgdGVjaCB3cml0ZXIKPiA+ID4gZm9yIDIwIHllYXJz LCBhbmQgdW5kZXJzdGFuZCBtYW55IG9mIHRoZSBpc3N1ZXMgeW91IGhpZ2hsaWdodCBoZXJlLiBJ Cj4gPiB0aGluawo+ID4gPiB3ZSBib3RoIHdhbnQgYSBsb3Qgb2YgdGhlIHNhbWUgdGhpbmdzLCBh bmQgY2FuIGhlbHAgZWFjaCBvdGhlciwgcHJvdmlkZWQKPiA+IHdlCj4gPiA+IGNhbiBjb21wcm9t aXNlIHRvIGZpbmQgYSBtaWRkbGUgZ3JvdW5kIHRoYXQgbWFrZXMgeW91IGhhcHB5IGJ1dCBhbHNv Cj4gPiB3b3Jrcwo+ID4gPiB3aXRoIG91ciBjb250ZW50IHN0cmF0ZWd5Lgo+ID4gPgo+ID4gPiBJ 4oCYbSBoYXBweSB0byB1bmJhbiB5b3UgaWYgSSBjYW4gZ2V0IHlvdXIgYWdyZWVtZW50IHRoYXQg eW914oCZbGwgbGlzdGVuIHRvCj4gPiA+IG91ciBtb2RlcmF0b3JzIGFuZCByZXNwZWN0IG91ciB3 aXNoZXMsIGFuZCBlbmdhZ2UgaW4gY29uc3RydWN0aXZlCj4gPiA+IGRpc2N1c3Npb24gYWJvdXQg cHJvc3BlY3RpdmUgY29udGVudC4KPiA+ID4KPiA+ID4gSeKAmWQgYWxzbyBsaWtlIHlvdSB0byBh bnN3ZXIgYSBxdWVzdGlvbiBmb3IgbWUg4oCUIHdoYXQgd291bGQgeW91IGxpa2UgdG8KPiA+IHNl ZQo+ID4gPiBpbiB0ZXJtcyBvZiBNRE4gY29udGVudCBnb2luZyBmb3J3YXJkPyBHaXZlIG1lIGEg aGlnaCBsZXZlbCBkZXNjcmlwdGlvbiwKPiA+ID4gbm90IHRvbyBtdWNoIGRldGFpbCBhdCB0aGlz IHN0YWdlLgo+ID4gPgo+ID4gPiBUaGluZ3Mgd2UgY2FuIGRvOgo+ID4gPgo+ID4gPiAqIEFkZCBt b3JlIGNvbnRlbnQgYWJvdXQgc2VjdXJpdHkvcHJpdmFjeSBiZXN0IHByYWN0aWNlcyByZWxhdGVk IHRvIGZyb250Cj4gPiA+IGVuZCB3ZWIgZGV2LiBXZSBhcmUgYSB3ZWIgZGV2ZWxvcG1lbnQgdHV0 b3JpYWwgc2l0ZSwgYW5kIHRoaXMgaXMKPiA+IGRlZmluaXRlbHkKPiA+ID4gaW4gb3VyIHJlbWl0 Lgo+ID4gPiAqIEFkZCB3YXJuaW5ncyBpbiBhIHRhc3RlZnVsIHdheSB0aGF0IHdvcmtzIGZvciBv dXIgY29udGVudCBzdHJhdGVneS4gV2UKPiA+ID4gaGF2ZSBhIHBsYW4gZm9yIHRoZSBuZWFyIGZ1 dHVyZSB0byBhZGQgYSBkeW5hbWljYWxseS1jb25zdHJ1Y3RlZCBiYW5uZXIKPiA+IGF0Cj4gPiA+ IHRoZSB0b3Agb2YgcmVmZXJlbmNlIHBhZ2VzIHRoYXQgaGlnaGxpZ2h0cyBjb25jZXJucyB3aXRo IHRoYXQgd2ViCj4gPiBmZWF0dXJlLAo+ID4gPiBlLmcuIHByaXZhY3ksIHNlY3VyaXR5LCBhY2Nl c3NpYmlsaXR5LCBwZXJmb3JtYW5jZeKApgo+ID4gPiAqIEFkZCBhZGRpdGlvbmFsIFNlY3VyaXR5 IGFuZCBwcml2YWN5IGNvbmNlcm5zIHNlY3Rpb25zIHRvIG90aGVyIHBhZ2VzCj4gPiA+IHRoYXQg bmVlZCBpdC4gSSBhbSB2ZXJ5IGludGVyZXN0ZWQgaW4gcHJvdmlkaW5nIHN1Y2ggaW5mb3JtYXRp b24uCj4gPiA+Cj4gPiA+IFRoaW5ncyB3ZSBjYW7igJl0IGRvOgo+ID4gPgo+ID4gPiAqIFByb3Zp ZGUgZXh0ZW5zaXZlIHJlZ3VsYXRvcnkvcG9saWN5L2xlZ2FsIGFkdmljZS4gVGhpcyBpcyBhIG1p bmVmaWVsZAo+ID4gPiB0aGF0IHdlIGRvIG5vdCBoYXZlIHRoZSB0aW1lIG9yIGtub3dsZWRnZSB0 byB3YWxrIHRocm91Z2guCj4gPiA+ICogQ2hhbmdlIHRoZSB3ZWIgcGxhdGZvcm0uIEkgYW0gbm90 IGdvaW5nIHRvLCBmb3IgZXhhbXBsZSwgaGVscCB3aXRoIGEKPiA+ID4gY2FtcGFpZ24gaW5zaWRl IE1vemlsbGEgdG8gZ2V0IHJpZCBvZiB0aGUgUmVmZXJyZXIgaGVhZGVyLCBvciBtYWtlIGl0Cj4g PiBsZWFrCj4gPiA+IG5vIGRhdGEgYnkgZGVmYXVsdC4gSWYgTW96aWxsYSBkaWQgdGhhdCwgbG90 cyBvZiBodWdlIHNpdGVzIHRoYXQgcmVseSBvbgo+ID4gPiB0cmFja2luZywgZXRjLiBmb3IgdGhl aXIgYnVzaW5lc3MgbW9kZWwgd291bGQgYmxvY2sgRmlyZWZveCwgdGhlbiB3ZeKAmWQKPiA+IGxv c2UKPiA+ID4gb3VyIG1hcmtldCBzaGFyZSBhbmQgdGhlcmXigJlkIGJlIG5vIEZpcmVmb3ggYXQg YWxsLiBTdWNoIGRpc2N1c3Npb25zIHdvdWxkCj4gPiA+IGhhdmUgdG8gc3RhcnQgb24gYSBXM0Mg bGV2ZWwuIEl04oCZcyB0aGUgdWdseSB0cnV0aC4gSSBoYXRlIGl0IGFzIG11Y2ggYXMKPiA+IHlv dQo+ID4gPiBkbywgYmVsaWV2ZSBtZS4KPiA+ID4gKiBBZGQgbG90cyBvZiByYW5kb20gcmVkIGJh bm5lcnMgZXZlcnl3aGVyZS4gSWYgd2UgZGlkIHRoaXMgZm9yIGV2ZXJ5Cj4gPiA+IGRpZmZlcmVu dCBwZXJzb24gd2hvIGNhbWUgYWxvbmcgYW5kIHdhbnRlZCByZWQgYmFubmVycyB0byBzdXBwb3J0 IHRoZWlyCj4gPiA+IGNob3NlbiBjYXVzZSwgTUROIHdvdWxkIGJlIGEgY29tcGxldGUgbWVzcywg YW5kIG5vLW9uZSB3b3VsZCB0YWtlIGl0Cj4gPiA+IHNlcmlvdXNseS4gV2UgaGF2ZSBsb3RzIG9m IGV2aWRlbmNlIHRvIHN1cHBvcnQgdGhlIG5vdGlvbiB0aGF0IHNjYXJ5Cj4gPiA+IGJhbm5lcnMg ZG9u4oCZdCByZWFsbHkgbWFrZSBtdWNoIGRpZmZlcmVudCBhdCBhbGwg4oCUIGVzdGFibGlzaGVk IHdlYiBkZXZzCj4gPiB0ZW5kCj4gPiA+IHRvIGp1bXAgYXJvdW5kIGFuZCB1c2Ugc3BlY2lmaWMg aXRlbXMgaW4gcmVmZXJlbmNlIHBhZ2VzLCBzdWNoIGFzIHRoZQo+ID4gY29kZQo+ID4gPiBleGFt cGxlLCBvciB0aGUgY29tcGF0IGRhdGEuIFRoZXkgdGVuZCB0byBpZ25vcmUgc3VjaCBiYW5uZXJz LiBCZWdpbm5lcnMKPiA+IG9uCj4gPiA+IHRoZSBvdGhlciBoYW5kIGFyZSBtb3JlIGxpa2VseSB0 byByZWFkIHRoZSBXaG9sZSBwYWdlIGJ1dCBwcm9iYWJseSB3b27igJl0Cj4gPiA+IHJlYWxseSBn ZXQgaXQgb3Igd2h5IGl04oCZcyBpbXBvcnRhbnQsIGFuZCBiZSBwdXQgb2ZmIGJ5IGl0LiBUaGV5 IG5lZWQgdG8KPiA+ID4ga25vdyB3aGF0IGFuIDxhPiBlbGVtZW50IGlzIGZpcnN0LCBiZWZvcmUg YmVpbmcgYm9tYmFyZGVkIHdpdGggc2NhcnkKPiA+ID4gd2FybmluZ3MuIFdlIG5lZWQgYSBkaWZm ZXJlbnQgYXBwcm9hY2guCj4gPiA+Cj4gPiA+IEJlc3QgcmVnYXJkcywKPiA+ID4KPiA+ID4gLS0t Cj4gPiA+Cj4gPiA+IENocmlzIE1pbGxzCj4gPiA+IE1ETiBjb250ZW50IGxlYWQgJiB3cml0ZXJz JyB0ZWFtIG1hbmFnZXIKPiA+ID4gTUROIFdlYiBEb2NzCj4gPiA+IE1vemlsbGEKPiA+ID4gQGNo cmlzZGF2aWRtaWxscwo+ID4gPgo+ID4gPiBPbiBTZXAgMjYsIDIwMTgsIGF0IDk6MzUgUE0sIE1h cmsgUmljaGFyZHMgPG1hcmsuYWxhbi5yaWNoYXJkc0BnbWFpbC5jb20KPiA+ID4KPiA+ID4gd3Jv dGU6Cj4gPiA+Cj4gPiA+IENocmlzLAo+ID4gPgo+ID4gPiBZb3UncmUgbWl4aW5nIHVwIHByb3Rl c3Qgd2l0aCBpbmFwcHJvcHJpYXRlIGFnZ3Jlc3NpdmUgYmVoYXZpb3VyLgo+ID4gPgo+ID4gPiBU aGUgdHdvIGFyZSBkaWZmZXJlbnQgYW5kIHdoaWxzdCBwcm90ZXN0IGlzIGFnZ3Jlc3NpdmUsIGl0 IGlzIGEgd2FycmFudGVkCj4gPiA+IGZvcm0gb2YgZXhwcmVzc2lvbiwgdHlwaWNhbGx5IHByb3Rl Y3RlZCBieSBsYXcuIEkgaGF2ZSBub3QgZXhwcmVzc2VkIGFueQo+ID4gPiBhZ2dyZXNzaW9uIHRo YXQgd291bGQgc2VlayB0byBoYXJtIHlvdS4gUHJvdGVzdCBpcyBub3QgYW4gZW5qb3lhYmxlCj4g PiA+IGV4cGVyaWVuY2UgdG8gYmUgb24gdGhlIHJlY2VpdmluZyBzaWRlIG9mLCBzb3JyeSB0byB5 b3UgYW5kIFdpbGwgZm9yCj4gPiB0aGlzLgo+ID4gPiBJdCBpcyBub3QgZW5qb3lhYmxlIGZvciBt ZSB0byBmZWVsIHRoaXMgaXMgYSBuZWNlc3NhcnkgYWN0IGFuZCB5b3UKPiA+IGVuZ2FnZWQKPiA+ ID4gaW4gc3RhcnRpbmcgYSBwcm90ZXN0IGFnYWluc3QgbXkgYWRkaXRpb24gb2YgdGhlIHdhcm5p bmcsIHNvIEknbSBndWVzc2luZwo+ID4gPiB3ZSBwcm9iYWJseSBzaGFyZSBzb21lICBzaW1pbGFy IGZlZWxpbmdzIGFib3V0IHRoaXMgc2l0dWF0aW9uIGFuZCBnaXZlbiBhCj4gPiA+IHBvc2l0aW9u IHJldmVyc2FsIG1heWJlIEkgd291bGQgaGF2ZSBibG9ja2VkIHlvdS4KPiA+ID4KPiA+ID4gSSd2 ZSBiZWVuIGFjdGl2ZSBvbiB0aGUgcHJvYmxlbSBvZiBSZWZlcmVycyBvbiBhbmQgb2ZmIGZvciB0 aHJlZSB5ZWFycywKPiA+ID4gSSdtIG5vdCBzdG9wcGluZyB0b2RheS4gSSd2ZSBzZWVuIGVub3Vn aCBkYXRhIGxvc3QgdG8gdGhpcmQgcGFydGllcyBhbmQKPiA+IG5vdAo+ID4gPiBqdXN0IHJlc2V0 IHBhc3N3b3JkIGxpbmtzLCBidXQgc2Vzc2lvbiBsb2dpbiB0b2tlbnMgdGhhdCBleHBpcmVkIGFm dGVyIGEKPiA+ID4geWVhciBhbmQgdXNlcm5hbWVzIGFuZCBwYXNzd29yZHMgdXNlZCBpbiBmb3Jt IEdFVCByZXF1ZXN0cyAoZGVmYXVsdAo+ID4gPiBiZWhhdmlvdXIgb2YgYSBmb3JtIGlzIGEgR0VU IGFuZCBub2JvZHkgc2hvdWxkIHVzZSB0aGlzLCBhbm90aGVyIHByb2JsZW0KPiA+ID4gd2l0aCBi cm93c2VycyBmcm9tIHJldGFpbmluZyAxOTkwcyBkZXNpZ24sIGJ1dCBpZiBhIHNpdGUgdXNlcyBK YXZhU2NyaXB0Cj4gPiB0bwo+ID4gPiBwcm9jZXNzIHRoZSBmb3JtIHRoZSBEZXYgY2FuIHN3YXAg dG8gYW4gQWpheCBwb3N0LCBidXQgaWYgdGhlIGRldmVsb3Blcgo+ID4gPiBpc24ndCBkZWZlbnNp dmUgaW4gc2V0dGluZyB0aGUgbWV0aG9kIGFueXdheSB0byBwb3N0IG9yIHB1dCwgdGhlbiB3aGVu Cj4gPiB0aGUKPiA+ID4gc2NyaXB0IGZhaWxzIHRvIGxvYWQgaW4gdGltZSBvciBiZWNhdXNlIG9m IGEgbmV0d29yayBmYWlsdXJlICh3aGljaCBpc24ndAo+ID4gPiB1bmxpa2VseSBvbiBtb2JpbGVz KSB0aGVuIHRoZSBicm93c2VyIHdpbGwgYnkgZGVmYXVsdCBwZXJmb3JtIGEgR0VUIGFuZAo+ID4g PiBsZWFrIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gdGhpcmQgcGFydGllcyB0cmFja2lu ZyB0aGUgc2FtZSBwYWdlLi4uCj4gPiA+IEhhZCB0aGUgc2NyaXB0IGxvYWRlZCBpdCB3b3VsZCBo YXZlIG92ZXJ3cml0dGVuIHRoZSBiZWhhdmlvdXIuLiB0aGlzIGlzCj4gPiA+IG1vcmUgY29tbW9u IHRoYXQgeW91IG1pZ2h0IGhhdmUgdGhvdWdodC4gSXQncyBub3QganVzdCBzY3JpcHRzIG5vdAo+ ID4gbG9hZGluZwo+ID4gPiBlaXRoZXIsIGlmIHRoZSBzY3JpcHQgaGl0cyBhbiBleGNlcHRpb24g YmVmb3JlIGNoYW5naW5nIHRoZSBkZWZhdWx0Cj4gPiA+IGJlaGF2aW91ciBvZiB0aGUgZm9ybSwg dGhlIGZvcm0gd2lsbCByZW1haW4gaW4gdGhlIEdFVCBkZWZhdWx0LCBzbyBpZiB0aGUKPiA+ID4g Zm9ybSB2YWxpZGF0aW9uIGxvZ2ljIGhpdHMgc29tZXRoaW5nIHVuZXhwZWN0ZWQsIGl0IG1pZ2h0 IG5vdCBnZXQgYXJvdW5kCj4gPiB0bwo+ID4gPiBjaGFuZ2luZyB0aGUgc3VibWlzc2lvbiBiZWhh dmlvdXIpLgo+ID4gPgo+ID4gPiBQbGVhc2UgZG9uJ3QgZmlnaHQgdG8gaGlkZSB0aGlzIHdhcm5p bmcgYXMgYSBmb290bm90ZSBkZXZlbG9wZXJzIG1pZ2h0Cj4gPiA+IGZpbmQuIEknbSBub3QgdGhl IG9ubHkgb25lIHdobyBjYXJlcyBhYm91dCB0aGlzIGFuZCBJIGhvcGUgb3RoZXJzIHByb3Rlc3QK PiA+ID4gdG9vIGFib3V0IE1vemlsbGEgcmVtb3ZpbmcgdGhpcyB3YXJuaW5nLiBJIGFtIGxpa2Vs eSBvbmUgb2YgdGhlIG1pbm9yaXR5Cj4gPiBvZgo+ID4gPiBkZXZlbG9wZXJzIHdobyBnb2VzIG91 dCBvZiB0aGVpciB3YXkgdG8gcmVzZWFyY2ggdGhpcyB0b3BpYyBhbmQgSSB3b3VsZAo+ID4gPiBl bmNvdXJhZ2UgeW91IHRvIHRyeSBzb21lIHJlc2VhcmNoLgo+ID4gPgo+ID4gPiBNYXloZSB1c2Ug dGhlIHdlYiBhbmQgY2hlY2sgd2hhdCByZWZlcmVycyB5b3UgY2FuIGZpbmQgbGVha2VkIGFuZCB0 bwo+ID4gd2hvbS4KPiA+ID4gWW91IGNhbiBwcm9iYWJseSB0dXJuIG9uIGhhciBkYXRhIGxvZ2dp bmcgaW4gRmlyZWZveCwgY2h1Y2sgaXQgaW50byBhCj4gPiBKU09OCj4gPiA+IGZpbGUgb3ZlciBh IGZldyBtb250aHMgYW5kIHRoZW4gcGFyc2UgdGhhdCBpbnRvIGEgZGF0YWJhc2UsIG1heWJlIEVs YXN0aWMKPiA+ID4gU2VhcmNoIGFuZCBzZWFyY2ggZm9yIHdobyBnb3QgeW91ciBlbWFpbCwgd2hv IGtub3dzIHdoaWNoIHdlYnNpdGVzIHlvdQo+ID4gPiB2aXNpdGVkLCBkaWQgYW55b25lIGdldCBh IHBhc3N3b3JkLCBldGMuIFlvdSdsbCBuZWVkIHRvIGRvIHRoaXMgd2l0aG91dAo+ID4gYW55Cj4g PiA+IHByaXZhY3kgcGx1Z2lucyBlbmFibGVkIHRoYXQgbWlnaHQgc3RvcCB0aGlyZCBwYXJ0aWVz IGxvYWRpbmcgb3IgY2hhbmdpbmcKPiA+ID4gcmVmZXJlcnMuIFNhZGx5IHRoZSBiZXN0IHJlc2Vh cmNoIGNhbiBvZnRlbiBwdXQgdGhlIHJlc2VhcmNoZXIgYXQgc29tZQo+ID4gPiByaXNrcywgc28g b25seSBkbyB0aGlzIGlmIHlvdSBhcmUgY29tZm9ydGFibGUgZG9pbmcgaXQuCj4gPiA+Cj4gPiA+ IE1lYW53aGlsZSwgcGxlYXNlIHRha2UgYSBzdGVwIGJhY2sgYW5kIGxvb2sgYXQgdGhpcyBhZ2Fp bi4KPiA+ID4KPiA+ID4gTm90ZTogSSBkaWQgYWxzbyBzeW1wYXRoaXNlIHdpdGggeW91ciBwb3Np dGlvbiBhYm91dCBhIGJvbGQgcmVkIHdhcm5pbmcKPiA+ID4gYW5kIHdoZW4gdGhlIGJsb2NrIG9m IHRleHQgSSB3cm90ZSBtb3ZlZCBkb3duIHRoZSBwYWdlLCBJIG9ubHkgcHV0IGEKPiA+IHNtYWxs Cj4gPiA+IDEtMiBsaW5lIHdhcm5pbmcuLi4gSSB3YXMgdHJ5aW5nIHRvIGJlIHJlc3BlY3RmdWwg b2YgeW91ciBvciBXaWxsJ3MKPiA+ID4gcG9zaXRpb24gYXQgdGhlIHRpbWUgYW5kIHNpbmNlIGFz a2VkIHJlcGVhdGVkbHkgaWYgeW91IGhhZCBhbnkgaWRlYXMgdG8KPiA+ID4ga2VlcCBzb21ldGhp bmcgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0aGF0IGFjaGlldmVzIHRoZSBzYW1lIGdvYWwuIFRv Cj4gPiB3aGljaAo+ID4gPiB5b3UgYm90aCBqdXN0IGtlcHQgZGVsZXRpbmcgaXQgYW5kIGxlZCB1 cyB0byB0aGlzIHN0YXRlLgo+ID4gPgo+ID4gPiBCZXN0Cj4gPiA+IE1hcmsgUmljaGFyZHMKPiA+ ID4KPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4gT24gV2VkLCAyNiBTZXAgMjAx OCwgMTc6NDUgQ2hyaXMgTWlsbHMsIDxjbWlsbHNAbW96aWxsYS5jb20+IHdyb3RlOgo+ID4gPgo+ ID4gPj4gKHJlbW92aW5nIGFsbCB0aGUgb3RoZXIgZS1tYWlsIGFkZHJlc3NlcyB5b3UndmUgYXR0 YWNoZWQgdG8gdGhlIG1haWwsIGFzCj4gPiA+PiBJIGRvbid0IGtub3cgdGhlc2UgcGVvcGxlIG9y IHRoZWlyIGludm9sdmVtZW50IGluIHRoaXMuIEFsc28gcmVtb3ZpbmcKPiA+IFdpbGwuKQo+ID4g Pj4KPiA+ID4+IEhpIE1hcmssCj4gPiA+Pgo+ID4gPj4gSSdtIENocmlzLCBXaWxsJ3MgbWFuYWdl ci4KPiA+ID4+Cj4gPiA+PiBJIHNlZSB0aGF0IHlvdSd2ZSBhZ2FpbiBpZ25vcmVkIG91ciBtdWx0 aXBsZSByZXF1ZXN0cyB0byBzdG9wIHJldmVydGluZwo+ID4gPj4gb3VyIGNoYW5nZXMuIFlvdSd2 ZSBhbHNvIHNlbnQgdXMgbXVsdGlwbGUgZW1haWxzIHRoYXQgaGF2ZSBjb21lIGFjcm9zcwo+ID4g YXMKPiA+ID4+IGFnZ3Jlc3NpdmUgYW5kIHNvbWV3aGF0IHRocmVhdGVuaW5nLiBBbmQgYWxsIG9m IHRoaXMgYWZ0ZXIgd2UgaGF2ZSB0YWtlbgo+ID4gPj4gbXVsdGlwbGUgc3RlcHMgdG8gbWVldCB5 b3VyIGNvbnRlbnQgZGVtYW5kcywgYnV0IGluIGEgd2F5IHRoYXQgd29ya3MgZm9yCj4gPiA+PiBv dXIgY29udGVudCBzdHJhdGVneS4gSSB0aGVyZWZvcmUgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGJh biB5b3VyCj4gPiBhY2NvdW50Lgo+ID4gPj4KPiA+ID4+IFRoaXMgaXMgYSBzaGFtZSwgYW5kIG5v dCBzb21ldGhpbmcgSSBlbmpveSBkb2luZyBvciB0YWtlIGxpZ2h0bHkuIFdlCj4gPiA+PiBhZ3Jl ZSB3aXRoIG1hbnkgb2YgeW91ciBwb2ludHMgb2YgdmlldywgaG93ZXZlciB3ZSBhbHNvIGhhdmUg b3VyIG93bgo+ID4gPj4gcmVhc29ucyBmb3Igd29yZGluZyBhbmQgcHJlc2VudGluZyBkb2N1bWVu dGF0aW9uIGxpa2Ugd2UgZG8sIGFuZCB3ZSBoYXZlCj4gPiA+PiB0aGUgdWx0aW1hdGUgc2F5IG9u IE1ETiBjb250ZW50IGRpc3B1dGVzLiBUaGlzIG11c3QgYmUgcmVzcGVjdGVkIGJlZm9yZQo+ID4g d2UKPiA+ID4+IGNhbiBlbmdhZ2Ugd2l0aCBjb250cmlidXRvcnMgaW4gYSBtZWFuaW5nZnVsIHdh eS4KPiA+ID4+Cj4gPiA+PiBCZXN0IHJlZ2FyZHMsCj4gPiA+Pgo+ID4gPj4gLS0tCj4gPiA+Pgo+ ID4gPj4gQ2hyaXMgTWlsbHMKPiA+ID4+IE1ETiBjb250ZW50IGxlYWQgJiB3cml0ZXJzJyB0ZWFt IG1hbmFnZXIKPiA+ID4+IE1ETiBXZWIgRG9jcwo+ID4gPj4gTW96aWxsYQo+ID4gPj4gQGNocmlz ZGF2aWRtaWxscwo+ID4gPj4KPiA+ID4+IE9uIFNlcCAyNSwgMjAxOCwgYXQgMjo0NSBBTSwgTWFy ayBSaWNoYXJkcyA8Cj4gPiBtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29tPgo+ID4gPj4gd3Jv dGU6Cj4gPiA+Pgo+ID4gPj4gQ2hyaXMgYW5kIFdpbGxpYW0sCj4gPiA+Pgo+ID4gPj4gVGhpcyBw YWdlIHdpbGwgbWlzbGVhZCB3ZWIgZGV2ZWxvcGVycy4KPiA+ID4+Cj4gPiA+Pgo+ID4gaHR0cHM6 Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvU2VjdXJpdHkvUmVmZXJlcl9o ZWFkZXI6X3ByaXZhY3lfYW5kX3NlY3VyaXR5X2NvbmNlcm5zCj4gPiA+Pgo+ID4gPj4gSSBkb24n dCB3YW50IHRvIGltcHJvdmUgaXQsIGJlY2F1c2UgdGhpcyBuYXR1cmUgb2YgIGRvY3VtZW50IHNo b3VsZCBiZQo+ID4gPj4gY2VudHJlIHN0YWdlIG9mIHRoZSBSZWZlcmVyIHBhZ2UKPiA+ID4+IGh0 dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9S ZWZlcmVyCj4gPiA+Pgo+ID4gPj4gVGhlIHJlZmVyZXIgdW5leHBlY3RlZGx5IChtb3N0IHVzZXJz IGRvbid0IGtub3cgdGhpcyBoYXBwZW5zLCBldmVuIGEKPiA+ID4+IHN1cnByaXNpbmcgbnVtYmVy IGluIHRoZSB0ZWNoIGNvbW11bml0eSBkb24ndCkgc2VuZHMgdGhlIHBhZ2UgeW91IGFyZQo+ID4g Pj4gY3VycmVudGx5IG9uIHRvIHRoZSB0YXJnZXQgd2hlbiB0aGVpciBjb250ZW50IGlzIGxvYWRl ZCBvbiBhIHBhZ2UgKGxpa2UKPiA+IGFuCj4gPiA+PiBpbWFnZSkgb3Igd2hlbiB5b3UgZm9sbG93 IGEgbGluayB0byB0aGVpciBwYWdlLgo+ID4gPj4KPiA+ID4+IEJ5IGRlc2lnbiB0aGlzIGlzIGEg YnJlYWNoIG9mIHByaXZhY3ksIGlmIHRoZSB0YXJnZXQgaXMgYSB0aGlyZCBwYXJ0eS4KPiA+ID4+ IFRoZXkgYXJlIGJlaW5nIHRvbGQgeW91IGFyZSBhIHVzZWQgb2YgdGhlIG9yaWdpbiB3ZWJzaXRl IGFuZCB0aGF0J3MKPiA+ID4+IHBlcnNvbmFsIGRhdGEgYWJvdXQgc29tZW9uZSdzIGFjdGl2aXRp ZXMsIG9mdGVuIG1hcHBlZCB0byBhbiBhcHByb3hpbWF0ZQo+ID4gPj4gaWRlbnRpdHkgKHBzdWVk b255bSwgSVAgYWRkcmVzcywgZXRjKSBvciByZWFsIGlkZW50aXR5ICggYSB1c2VyIGFjY291bnQK PiA+IG9uCj4gPiA+PiB0aGUgdGFyZ2V0KSBhbmQgYWxsb3dzIGZvciB0aGluZ3MgbGlrZSBkaXNj cmltaW5hdGlvbi4uIGNvbWluZyBmcm9tIGEKPiA+ID4+IHJlbGlnaW91cyBzaXRlIHRvIGEgc2hv cHBpbmcgc2l0ZSBhbmQgd2lsbCB0aGVpciBzdG9jayBzdGlsbCBiZQo+ID4gYXZhaWxhYmxlPwo+ ID4gPj4gVGhlcmUgYXJlIGlubm9jZW50IHVzZSBjYXNlcywgYnV0IHlvdSdyZSBtaXNyZXByZXNl bnRpbmcgdGhlbS4KPiA+ID4+Cj4gPiA+PiBPYnZpb3VzbHksIHRoZSBpbnRlcm5ldCBpcyBmdWxs IG9mIGFkIHRyYWNraW5nIGFuZCB0aGlzIGlzIHRoZSBnbGFyaW5nbHkKPiA+ID4+IG9idmlvdXMg cHJvYmxlbSBoaXR0aW5nIGhlYWRsaW5lcyBhYm91dCBsZWdhbCBjYXNlcyBhbmQgcmVndWxhdG9y eQo+ID4gYWN0aW9uCj4gPiA+PiBpbiB2YXJpb3VzIGNvdW50cmllcywgYnV0IHdoYXQgeW91J3Zl IGRlc2NyaWJlZCBhcyAiaW5ub2NlbnQiIGxhcmdlbHkKPiA+IGlzbnQKPiA+ID4+IHRvIGJlIGln bm9yZWQgYW5kIGl0IGlzIHRoZSByZWFzb24gd2h5IEkgdGl0bGVkIHRoZSBzZWN0aW9uIG9yaWdp bmFsbHkKPiA+IGFzCj4gPiA+PiBub3QganVzdCBhYm91dCBwcml2YWN5IGFuZCBzZWN1cml0eSwg YnV0IHJlZ3VsYXRvcnkgY29uY2VybnMuIElmIHRoZQo+ID4gPj4gdGFyZ2V0aW5nIGRpc2FwcGVh cmVkIHRvbW9ycm93LCB0aGlzIHdvdWxkIHN0aWxsIG5lZWQgdG8gYmUgYSBmZWF0dXJlCj4gPiBh bGwKPiA+ID4+IHdlYiBkZXZlbG9wZXJzIG5lZWQgdG8gdW5kZXJzdGFuZC4KPiA+ID4+Cj4gPiA+ PiBJZiBhIHdlYnNpdGUgdXNlcyBsb2dnaW5nLCBhbmFseXRpY3Mgb3IgY2FjaGUgb3B0aW1pemF0 aW9uLCBmcm9tIGEgdGhpcmQKPiA+ID4+IHBhcnR5LCB3aGljaCBpcyBvZnRlbiB0aGUgY2FzZSB0 aGVzZSBkYXlzLCBpZiB0aGUgd2ViIGRldmVsb3BlciBkb2VzIG5vdAo+ID4gPj4gdW5kZXJzdGFu ZCB3aGF0IGRhdGEgdGhlIHRoaXJkIHBhcnRpZXMgZ2V0LCB0aGVuIHRoZXkgbWF5IGhhdmUganVz dCBwdXQKPiA+ID4+IHRoZWlyIGJ1c2luZXNzIGF0IHJpc2sgb2YgYnJlYWNoaW5nIHJlZ3VsYXRp b25zLCBsaWtlIHRoZSBkYXRhCj4gPiBwcm90ZWN0aW9uCj4gPiA+PiBsYXdzLCB3aGljaCByZXF1 aXJlIGFwcHJvcHJpYXRlIGNvbnNpZGVyYXRpb24gZm9yIGNvbnNlbnRzLAo+ID4gYWNjb3VudGFi aWxpdHkKPiA+ID4+IGFuZCBpbmNsdXNpb24gaW4gZG9jdW1lbnRhdGlvbiB0byB1c2VycyBhcyBw cml2YWN5IHBvbGljaWVzLgo+ID4gPj4KPiA+ID4+IFNvIHJlZ2FyZGxlc3Mgb2YgaG93IGlubm9j ZW50IGFueSBvZiB0aGVzZSBzZXJ2aWNlcyBhcmUsIGRlZWxvcGVycyB3aWxsCj4gPiA+PiBoYXZl IGxldCBkb3duIHRoZW1zZWx2ZXMsIHRoZWlyIGJ1c2luZXNzIGFuZCB0aGVpciB1c2VycywgdG8g YW4gZXh0ZW50Cj4gPiB0aGF0Cj4gPiA+PiBjb3VsZCByZXN1bHQgaW4gZmluZXMsIGxlZ2FsIGFj dGlvbiBhbmQgZGlzdHJlc3MsIGlmIHRoZXkgZmFpbCB0bwo+ID4gcmVhbGlzZQo+ID4gPj4gdGhl IGV4YWN0IHBhZ2UgdXNlcnMgYXJlIHZpc2l0aW5nIGlzIHNoYXJlZCB3aXRoIHRoZSB0YXJnZXQg YW5kIHRha2VuCj4gPiA+PiBhcHByb3ByaWF0ZSBzdGVwcyB0byBsZXQgdGhlIGJ1c2luZXNzIHVw ZGF0ZSBjb25zZW50IGZsb3dzLCB1cGRhdGUgR0RQUgo+ID4gPj4gaW1wYWN0IGFzc2Vzc21lbnRz LCBwb2xpY2llcywgcmlzayByZWdpc3RlcnMgYW5kIGFueXRoaW5nIGVsc2UgdGhhdAo+ID4gbWln aHQKPiA+ID4+IGJlIGEgZnVydGhlciByZXF1aXJlbWVudCBvZiBhbnkgaW5kdXN0cnkgc3BlY2lm aWMgcmVndWxhdGlvbiBmb3Igd2hlcmUKPiA+IHRoZXkKPiA+ID4+IG1heSBvcGVyYXRlIChoZWFs dGgsIGZpbmFuY2UsIGdvdmVybm1lbnQsIG1pbGl0YXJ5IGNsaW5pY2FsIHRyaWFscywgZXRjCj4g PiBtYXkKPiA+ID4+IHdlbGwgcmVxdWlyZSBhZGRpdGlvbmFsIHByb2Nlc3NlcyBhbmQgb3V0cHV0 cyBiZXlvbmQgR0RQUikuCj4gPiA+Pgo+ID4gPj4gU28gdW5sZXNzIHlvdSB3YW50IGEgbG90IG9m IGRhdGEgcHJvdGVjdGlvbiBvZmZpY2VycyBmYWNpbmcKPiA+ID4+IGludmVzdGlnYXRpb25zLCBi dXNpbmVzc2VzIGZhY2luZyBmaW5lcyBhbmQgd2ViIHVzZXJzIGRpc3RyZXNzZWQsIGV2ZW4KPiA+ ID4+IGNvbnNpZGVyaW5nIGxlZ2FsIGFjdGlvbnMgYWdhaW5zdCB3ZWJzaXRlcywgcGxlYXNlIGRv bid0IHBsYXkgZG93biB0aGUKPiA+ID4+IHNpZ25pZmljYW5jZSBvZiBtYW5hZ2luZyByZWZlcmVy IGhlYWRlcnMgcHJvcGVybHkuIEV2ZXJ5IHNpbmdsZSB3ZWIKPiA+ID4+IGRldmVsb3BlciBuZWVk cyB0byBrbm93IGFuZCBpdCBtaWdodCBiZSBhYm91dCBuYXN0eSBhZCB0cmFja2luZywgYnV0Cj4g PiA+PiB0aGVyZSdzIGEgbXVjaCBiaWdnZXIgcmVhc29uIHdoeSBldmVyeSBkZXZlbG9wZXIgbmVl ZHMgdG8ga25vdyBhbmQgaXQKPiA+IG1heQo+ID4gPj4gZ2V0IHRoZW0gZmlyZWQuLiBhcyBmb3Ig dGhlIHdob2xlIG9mIHRoZSBFVSwgdGhlcmUgaGFzIHRvIGJlIGFuCj4gPiA+PiB1bmRlcnN0YW5k aW5nIGFzIHBhcnQgb2YgbWVldGluZyBHRFBSIGFuZCBFVSBwcml2YWN5IGRpcmVjdGl2ZSBhbmQK PiA+IHNpbWlsYXIKPiA+ID4+IHJlZ3VsYXRpb25zIGFyZSBiZWluZyBkcmFmdGVkIG9yIGFscmVh ZHkgZXhpc3QgaW4gdmFyaW91cyBjb3VudHJpZXMKPiA+IGFyb3VuZAo+ID4gPj4gbXVjaCBvZiB0 aGUgd29ybGQuCj4gPiA+Pgo+ID4gPj4gSWYgeW91IGRvbid0IHVuZGVyc3RhbmQgbXkgbW90aXZl cyBmb3IgdGhlIGNoYW5nZXMgSSd2ZSBtYWRlIG9yIGRvbid0Cj4gPiA+PiB1bmRlcnN0YW5kIHRo ZSBicmVhZHRoIG9mIHdoeSBpdCBpcyBzbyBpbXBvcnRhbnQgdGhhdCBNb3ppbGxhIGVuc3VyZQo+ ID4gdGhlcmUKPiA+ID4+IGlzIGFwcHJvcHJpYXRlIGd1aWRhbmNlIGZvciB3ZWIgZGV2ZWxvcGVy cywgdGhlbiBhY3R1YWxseSB0YWxrIGFib3V0IGl0Cj4gPiA+PiBpbnN0ZWFkIG9mIGp1c3QgZGVs ZXRpbmcgc29tZW9uZSdzIHdvcmsgb3IgYW1lbmRpbmcgaXQgdG8gbGVzc2VuIHRoZQo+ID4gPj4g c2lnbmlmaWNhbmNlLi4uYXNrIG1lIHF1ZXN0aW9ucyBhcyB0byB3aHkgSSd2ZSB3b3JkZWQgc29t ZXRoaW5nIHRoaXMKPiA+IHdheSwKPiA+ID4+IGl0IGlzIG5vdCB3aXRoIG1hbGljZSwgaXQgaXMg dG8gaGVscCBwcm90ZWN0IHdlYiB1c2VycywgZGV2ZWxvcGVycyBhbmQKPiA+ID4+IGJ1c2luZXNz ZXMuCj4gPiA+Pgo+ID4gPj4gSSdtIHJlYWxseSBmcnVzdHJhdGVkIHRoYXQgTW96aWxsYSBoYXMg ZmFpbGVkIG9uIHByaXZhY3kgc28KPiA+IHNpZ25pZmljYW50bHkKPiA+ID4+IGZvciBzbyBsb25n LCBidXQgSSdtIHRyeWluZyB0byBwbGF5IGEgcG9zaXRpdmUgcm9sZSBpbiBoZWxwaW5nIHRvCj4g PiBpbXByb3ZlCj4gPiA+PiB0aGF0IGJ5IHVwZGF0aW5nIGRvY3MgdG8gaGVscCBkZXZlbG9wZXJz IGF2b2lkIHRoZSBwcml2YWN5LCBzZWN1cml0eSBhbmQKPiA+ID4+IHJlZ3VsYXRvcnkgY29tcGxp YW5jZSBob2xlcyBpdCdzIHNvIGVhc3kgdG8gZmFsbCBpbnRvIHdoZW4gbWFraW5nCj4gPiB3ZWJz aXRlcy4KPiA+ID4+IElmIGJyb3dzZXJzIGNvdWxkIHJlbW92ZSB0aG9zZSBob2xlcywgZ3JlYXQg YnV0IHVudGlsIHRoZW4gd2UgbmVlZCB0aGVzZQo+ID4gPj4gZG9jcy4KPiA+ID4+Cj4gPiA+PiBZ b3UncmUgc3VwcG9zZWQgdG8gY2FyZSBhYm91dCBwcml2YWN5IHRvbywgc28gcGxlYXNlIHJlc2Vh cmNoIGFuZAo+ID4gPj4gdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBmdWxseS4gUmVhZCB0aGUgSUNP IGd1aWRhbmNlIG9uIGltcGFjdAo+ID4gYXNzZXNzbWVudHMsCj4gPiA+PiBwcml2YWN5IHBvbGlj aWVzLCBtaWNyb3RhcmdldGluZywgY29uc2VudCwgYWNjb3VudGFiaWxpdHksIHByaXZhY3kgYnkK PiA+ID4+IGRlc2lnbiBhbmQgZGVmYXVsdC4uLiBQbGVhc2UgdW5kZXJzdGFuZCB3aGF0IHlvdSBh cmUgcmlza2luZyBieSByZW1vdmluZwo+ID4gPj4gdGhpcyBhbmQgd2h5IHdoYXQgbWF5IGFwcGVh ciBhcyBhbiBpbm5vdmF0aXZlIHVzZSBjYXNlLCBpcyBhY3R1YWxseSBhCj4gPiA+PiB0cmlnZ2Vy IGZvciBhIGNoYWluIG9mIGJ1c2luZXNzIHByb2Nlc3NlcyB0byBlbnN1cmUgdGhhdCBpdCBpcyBp bm5vY2VudAo+ID4gYW5kCj4gPiA+PiB0aGUgYnVzaW5lc3MgY2FuIGFjY291bnQgZm9yIHRoYXQg dG8gaXRzIHVzZXJzIGFuZCByZWd1bGF0b3JzLgo+ID4gPj4KPiA+ID4+IEkgYW0gZ3JhdGVmdWwg eW91J3ZlIG1hZGUgYW4gZWZmb3J0IHRvIGtlZXAgc29tZSBvZiB0aGUgaW50ZW50IG9mIG15Cj4g PiA+PiB3b3JrLCBidXQgSSdtIG5vdCBhdCBhbGwgaGFwcHkgYWJvdXQgdGhlIGF0dGl0dWRlIHNo b3duIGhlcmUgYW5kIGl0IGRvZXMKPiA+ID4+IG5vdCBoZWxwIHRoYXQgeW91IGRvbid0IGFwcGVh ciB0byB1bmRlcnN0YW5kLiBJIGFza2VkIGluIGEgcHJldmlvdXMKPiA+IGVtYWlsCj4gPiA+PiB0 byBnZXQgeW91ciBsZWdhbCB0ZWFtIGludm9sdmVkIGFuZCBjb3Jwb3JhdGUgc29jaWFsIHJlc3Bv bnNpYmlsaXR5Cj4gPiB0ZWFtOgo+ID4gPj4gbm90IGJlY2F1c2UgSSBwbGFuIHRvIHRha2UgbGVn YWwgYWN0aW9uIG9yIGFzayBmb3IgZG9uYXRpb25zLi4uIEJ1dAo+ID4gYmVjYXVzZQo+ID4gPj4g dGhleSBob3BlZnVsbHkgaGF2ZSB0aGUgZXhwZXJ0aXNlIHRvIHJlYWQgaW50byB0aGUgcmVndWxh dG9yeSBjb25jZXJucwo+ID4gYW5kCj4gPiA+PiB0aGUgcHJpdmFjeSBpc3N1ZXMgcmFpc2VkIGFu ZCBwbGF5IGEgcGFydCBpbiBpZGVudGlmeWluZyB0aGUgbmVlZCBmb3IKPiA+IHRoaXMKPiA+ID4+ IGRvY3VtZW50YXRpb24gaW5zdGVhZCBvZiB0aHJvd2luZyBidXNpbmVzc2VzIGludG8gdGhlIGxp bmUgb2YgZmlyZSBvZgo+ID4gZGF0YQo+ID4gPj4gcHJvdGVjdGlvbiBtaXNoYXBzLgo+ID4gPj4K PiA+ID4+IEJlc3QKPiA+ID4+IE1hcmsgUmljaGFyZHMKPiA+ID4+Cj4gPiA+Pgo+ID4gPj4gT24g TW9uLCAyNCBTZXAgMjAxOCwgMjE6MjAgTWFyayBSaWNoYXJkcywgPG1hcmsuYWxhbi5yaWNoYXJk c0BnbWFpbC5jb20KPiA+ID4KPiA+ID4+IHdyb3RlOgo+ID4gPj4KPiA+ID4+PiBDaHJpcywKPiA+ ID4+Pgo+ID4gPj4+IElzIGl0IHJlYWxseSBuZWNlc3NhcnkgdG8gY29udGludWUgdG8gcmVtb3Zl IHRoZSB3YXJuaW5nPwo+ID4gPj4+Cj4gPiA+Pj4gSWYgeW91IHdhbGsgaW50byBhIGJ1aWxkaW5n IGFuZCB0aGUgdGlsZWQgZmxvb3IgaXMgd2V0LCBwZW9wbGUgbWlnaHQKPiA+IGdldAo+ID4gPj4+ IGh1cnQsIHNvIHlvdSBwdXQgYSBzaWduIHVwIGFuZCB5b3Ugd2FybiB0aGVtLiBZb3UgZG9uJ3Qg c3RhdGUsICJidXQgdGhlCj4gPiA+Pj4gYnJpZ2h0IHllbGxvdyBzaWduIGRvZXNuJ3QgZml0IHdp dGggdGhlIGRlc2lnbiBvZiB0aGUgZWxlZ2FudCBoYWxsd2F5Igo+ID4gLi4uCj4gPiA+Pj4gc29y cnksIGJ1dCBzb21ldGltZXMgdGhlcmUgYXJlIG1vcmUgaW1wb3J0YW50IG1hdHRlcnMgdGhhbiBk ZXNpZ24gYW5kCj4gPiB5b3UKPiA+ID4+PiBoYXZlIHRvIGxpdmUgd2l0aCBpbmNvbnZlbmllbmNl IGJlY2F1c2UgaXQncyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8uCj4gPiA+Pj4KPiA+ID4+PiBJZiBh IGJyb3dzZXIgZmVhdHVyZSBieSBkZWZhdWx0LCBieSBkZXNpZ24sIGZ1bmN0aW9ucyBpbiBhIG1h bm5lciB0aGF0Cj4gPiA+Pj4gbGVha3MgcHJpdmF0ZSBkYXRhIChzb21ldGhpbmcgdGhhdCBsaWtl bHkgd2FzIG5vdCBhcyBvYnZpb3VzIGEgY29uY2Vybgo+ID4gaW4KPiA+ID4+PiB3aGF0IDE5OTYo Pykgd2hlbiByZWZlcmVyIHdhcyBpbmNsdWRlZCBpbiB0aGUgSFRUUCBSRkMpIHRoZW4gc2hvdWxk bid0Cj4gPiB5b3UKPiA+ID4+PiBwdXQgYSB3YXJuaW5nIHVwIGZpcnN0LCBiZWZvcmUgbW9yZSBk ZXZlbG9wZXJzIGNhdXNlIG1vcmUgaGFybSB0byB0aGUKPiA+ID4+PiBwdWJsaWM/Cj4gPiA+Pj4K PiA+ID4+PiBJdCBpcyB3cm9uZyB0byB0YWtlIHRoZSBzaWduIGRvd24gYW5kIGxlYXZlIGEgbm90 ZSB1cCB0b3dhcmRzIHRoZSBlbmQKPiA+IG9mCj4gPiA+Pj4gdGhlIHRpbGVkIGZsb29yLCBsb25n IGFmdGVyIG1hbnkgd2lsbCBoYXZlIGFscmVhZHkgZmFsbGVuIG92ZXIgc3RhdGluZwo+ID4gYmUK PiA+ID4+PiBjYXJlZnVsLCBkZXRhaWxzIGluIGFub3RoZXIgcm9vbS4gU28gd2h5IGFyZSB5b3Ug ZG9pbmcgdGhpcz8KPiA+ID4+Pgo+ID4gPj4+IEknbSBzb3JyeSBpdCdzIG5vdCBwcmV0dHksIHdh cm5pbmcgc2lnbnMgYXJlbid0IGFuZCBJJ20gc3VyZSBtYW55Cj4gPiA+Pj4gcHJvZHVjdHMgd2lz aGVkIHRoZXkgZGlkbid0IG5lZWQgdG8gaW5jbHVkZSBzbW9raW5nIGtpbGxzLCBmbGFtbWFibGUs Cj4gPiBub3QKPiA+ID4+PiBzdWl0YWJsZSBmb3IgY2hpbGRyZW4sIGhlYXZ5IGxvYWQsIC4uLiB3 YXJuaW5ncy4gV2h5IGlzIGl0IG9rYXkgZm9yCj4gPiB0aGUgd2ViCj4gPiA+Pj4gdG8gbm90IHdh cm4gcGVvcGxlIGZpcnN0LCB3aGVuIGV2ZXJ5b25lIGVsc2UgaGFzIHRvPwo+ID4gPj4+Cj4gPiA+ Pj4gQmVzdAo+ID4gPj4+IE1hcmsgUmljaGFyZHMKPiA+ID4+Pgo+ID4gPj4+Cj4gPiA+Pj4KPiA+ ID4+Pgo+ID4gPj4+Cj4gPiA+Pj4KPiA+ID4+PiBPbiBTYXQsIDIyIFNlcCAyMDE4LCAxNTo0NSBN YXJrIFJpY2hhcmRzLCA8Cj4gPiBtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29tPgo+ID4gPj4+ IHdyb3RlOgo+ID4gPj4+Cj4gPiA+Pj4+IFdpbGxpYW0gcGxlYXNlIGNhbiB5b3UgaW52b2x2ZSB5 b3VyIGNvcnBvcmF0ZSBzb2NpYWwgcmVzcG9uc2liaWxpdHkgb3IKPiA+ID4+Pj4gc2ltaWxhciBk ZXBhcnRtZW50IGFuZCBsZWdhbCB0ZWFtLgo+ID4gPj4+Pgo+ID4gPj4+PiBJJ20gc29ycnksIGJ1 dCBhZ2FpbiB0aGlzIGlzIG5vdCBhcHByb3ByaWF0ZS4KPiA+ID4+Pj4KPiA+ID4+Pj4gSWYgeW91 IG5vdyBnbyB0bwo+ID4gPj4+PiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9k b2NzL1dlYi9IVE1ML0VsZW1lbnQvYQo+ID4gPj4+Pgo+ID4gPj4+PiBZb3UgYXJlIGZpcnN0IHRh dWdodCBob3cgdG8gYWJ1c2Ugc29tZW9uZSdzIHByaXZhY3kgYnkgd3JpdGluZwo+ID4gaW5zZWN1 cmUKPiA+ID4+Pj4gY29kZSB0aGF0IGxlYWtzIHJlZmVyZXJzIGlkZW50aWZ5aW5nIHVzZXJzIG9u bGluZSBoYWJpdHMuCj4gPiA+Pj4+Cj4gPiA+Pj4+IE9mIG1hbnkgY29tcGxhaW50cyB0byBkYXRh IHByb3RlY3Rpb24gb2ZmaWNlcnMgdGhpcyB5ZWFyLCBzaXR0aW5nIGluCj4gPiA+Pj4+IHRoZSBj ZW50cmUgb2YgbXkgY29tcGxhaW50IGlzIHRoYXQgdGhlIHdlYnNpdGUgaXMgc2hhcmluZyB0aGUg cGFnZXMKPiA+IHBlb3BsZQo+ID4gPj4+PiB2aXNpdCwgc28gaGVhbHRoY2FyZSBvcmdhbml6YXRp b25zIGlkZW50aWZ5aW5nIHBlb3BsZSB3aG8gYXJlCj4gPiBpbnRlcmVzdGVkIGluCj4gPiA+Pj4+ IEhJViB0byBhZCBjb21wYW5pZXMsIHBvbGl0aWNhbCBwYXJ0aWVzIHJldmVhbGluZyB0aGVpciBt ZW1iZXJzaGlwIHRvCj4gPiBhZCBhbmQKPiA+ID4+Pj4gYW5hbHl0aWNzIGNvbXBhbmllcywgZXZl biBhIHJlbGlnaW91cyBzaXRlIGlkZW50aWZ5aW5nIHdobyBpbnRlbmRzIHRvCj4gPiA+Pj4+IHBy YXkuLi4gVGhlc2UgYXJlIGFsbCBzZW5zaXRpdmUgZGF0YS4gVGhlIHJlc2V0IHBhc3N3b3JkIGNv bmNlcm5zCj4gPiBpbmNsdWRpbmcKPiA+ID4+Pj4gcHVibGljIGhlYWx0aCBzaXRlcyBhbmQgYSBj cmVkaXQgcmVwb3J0IGNvbXBhbnkuCj4gPiA+Pj4+Cj4gPiA+Pj4+IE9ubHkgaWYgeW91ciBoYWJp dCBpcyAgdG8gcmVhZCB0aGUgd2hvbGUgZG9jdW1lbnQsIGJleW9uZCB3aGF0IHlvdQo+ID4gbmVl ZAo+ID4gPj4+PiB0byBnZXQgc29tZXRoaW5nIHdvcmtpbmcsIHdvdWxkIHlvdSB0aGVuIGxhdGVy IGRpc2NvdmVyIHRoYXQgdGhlCj4gPiBkZWZhdWx0Cj4gPiA+Pj4+IGltcGxlbWVudGF0aW9uIG9m IHdlYiBsaW5rcyBpcyB0byBicmVhY2ggcHJpdmFjeSBhbmQgaW4gdG9vIG1hbnkgY2FzZXMKPiA+ ID4+Pj4gc2VjdXJpdHkuCj4gPiA+Pj4+Cj4gPiA+Pj4+IFNvLCB5b3UndmUgcmVwZWF0ZWQgZXhh Y3RseSB3aGF0IEkgYXNrZWQgeW91IG5vdCB0byBkbyBhbmQgY29udGludWUgdG8KPiA+ID4+Pj4g dGVhY2ggd2ViIGRldmVsb3BlcnMgaG93IHRvIGFidXNlIHBlb3BsZSdzIHByaXZhY3kgYW5kIHNl Y3VyaXR5IGFuZAo+ID4gbGVhdmUKPiA+ID4+Pj4gdGhlbSB0byBtYXliZSBsYXRlciBmaW5kIG91 dCB3aGF0IHRoZXkgZ290IHdyb25nLgo+ID4gPj4+Pgo+ID4gPj4+PiBGb3IgYSBjb21wYW55IHRo YXQgY2xhaW1zIHRvIGNhcmUgYWJvdXQgcHJpdmFjeSwgeW91IHNlZW0gZGV0ZXJtaW5lZAo+ID4g dG8KPiA+ID4+Pj4gcHV0IHBlb3BsZSBpbiBoYXJtcyB3YXkuCj4gPiA+Pj4+Cj4gPiA+Pj4+IFNv IHBsZWFzZSB0cnkgYWdhaW4gYW5kIHN0b3AgaGlkaW5nIHRoZSBkZXNpZ24gZmFpbHVyZXMgaW4g eW91cgo+ID4gcHJvZHVjdAo+ID4gPj4+PiB0byBwYWdlcyBwZW9wbGUgbWlnaHQgY2hhbmNlIG9u LCBub3QgbmVlZCB0byBzZWUuCj4gPiA+Pj4+Cj4gPiA+Pj4+IFJlZ2FyZHMKPiA+ID4+Pj4KPiA+ ID4+Pj4gTWFyayBSaWNoYXJkcwo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+Pgo+ ID4gPj4+PiBPbiBTYXQsIDIyIFNlcCAyMDE4LCAxNToyMiBXaWxsaWFtIEJhbWJlcmcsIDx3YmFt YmVyZ0Btb3ppbGxhLmNvbT4KPiA+ID4+Pj4gd3JvdGU6Cj4gPiA+Pj4+Cj4gPiA+Pj4+PiBIaSBN YXJrCj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gV2UndmUgZGlzY3Vzc2VkIHRoaXMgaW50ZXJuYWxseSwg YW5kIHRoaXMgaXMgd2hhdCB3ZSdyZSBnb2luZyB0byBkbzoKPiA+ID4+Pj4+Cj4gPiA+Pj4+PiAq IHdyaXRlIGEgc2VwYXJhdGUgcGFnZSBvdXRsaW5pbmcgc2VjdXJpdHkgYW5kIHByaXZhY3kgY29u Y2VybnMKPiA+IGFyb3VuZAo+ID4gPj4+Pj4gdGhlIHJlZmVyZXIgaGVhZGVyLCBhbmQgbWl0aWdh dGlvbnMuIFdlJ3ZlIGRyYWZ0ZWQgc29tZSBjb250ZW50IGF0Cj4gPiA+Pj4+Pgo+ID4gaHR0cHM6 Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvU2VjdXJpdHkvUmVmZXJlcl9o ZWFkZXI6X3ByaXZhY3lfYW5kX3NlY3VyaXR5X2NvbmNlcm5zCj4gPiAuCj4gPiA+Pj4+PiBXZSB0 aGluayB0aGlzIHNob3VsZCBjb25jZW50cmF0ZSBvbiB0b29scyBhbmQgZGVzaWducyBhdmFpbGFi bGUgdG8KPiA+IGNvbWJhdAo+ID4gPj4+Pj4gdGhlc2UgcHJvYmxlbXMgKHN1Y2ggYXMgdGhlIFJl ZmVycmVyLVBvbGljeSBoZWFkZXIsIGFuZCBtYWtpbmcKPiA+IHBhc3N3b3JkCj4gPiA+Pj4+PiBy ZXNldCBVUkxzIHNpbmdsZS11c2UpIHJhdGhlciB0aGFuIG9uIGF1ZGl0aW5nIGV2ZXJ5IHRhcmdl dC4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PiAqIGxpbmsgdG8gdGhpcyBwYWdlIGZyb20gcmVsZXZhbnQg cGFnZXMsIHN1Y2ggYXMgdGhlIHBhZ2UgZm9yIHRoZSA8YT4KPiA+ID4+Pj4+IGFuZCA8aW1nPiBl bGVtZW50cy4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PiBXZSBkb24ndCB0aGluayBpdCdzIGFwcHJvcHJp YXRlIHRvIGhhdmUgYSByZWQgd2FybmluZyBiYW5uZXIgYXQgdGhlCj4gPiA+Pj4+PiB0b3BzIG9m IHRoZSBwYWdlcy4gVGhhdCBraW5kIG9mIGRlc2lnbiBlbGVtZW50IGlzIG9uZSB3ZSB0cnkgdG8K PiA+IGF2b2lkIG9uCj4gPiA+Pj4+PiBNRE4gdW5sZXNzIGl0J3MgaGlnaGxpZ2h0aW5nIHRoZSB2 ZXJ5IGZpcnN0IHRoaW5nIHlvdSBuZWVkIHRvIGtub3cKPiA+IGFib3V0Cj4gPiA+Pj4+PiB0aGUg aXRlbSwgd2hpY2ggd2UgZG9uJ3QgdGhpbmsgaXQgaXMgaW4gdGhpcyBjYXNlLCBhbHRob3VnaCB3 ZSBkbwo+ID4gPj4+Pj4gYXBwcmVjaWF0ZSB0aGF0IGl0IGlzIGltcG9ydGFudC4KPiA+ID4+Pj4+ Cj4gPiA+Pj4+PiBUaGFua3MgZm9yIGJyaW5naW5nIHRoaXMgdXAuCj4gPiA+Pj4+Pgo+ID4gPj4+ Pj4gV2lsbAo+ID4gPj4+Pj4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PiBPbiBTYXQsIFNlcCAxNSwgMjAx OCBhdCA3OjUwIFBNIE1hcmsgUmljaGFyZHMgPAo+ID4gPj4+Pj4gbWFyay5hbGFuLnJpY2hhcmRz QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Pj4+Pgo+ID4gPj4+Pj4+IFdoZW4gYSBmZWF0dXJlJ3Mg ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBwdXRzIHBlb3BsZSBpbiBoYXJtcyB3YXksCj4gPiA+Pj4+ Pj4gdGhlbiB1c2VycyBuZWVkIGEgd2FybmluZyB0byBwcm90ZWN0IHRoZW1zZWx2ZXMgYW5kIG90 aGVycy4KPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+IElzIGl0IE1vemlsbGEncyBwb3NpdGlvbiB0byB0 ZWFjaCBzb2Z0d2FyZSBkZXZlbG9wZXJzIGhvdyB0byB1c2UKPiA+ID4+Pj4+PiBmZWF0dXJlcyBp biBhIG1hbm5lciB0aGF0IGxlYWtzIGRhdGEsIGxlYXZpbmcgZGV0YWlscyBvZiBob3cgdG8KPiA+ IGF2b2lkIGl0LAo+ID4gPj4+Pj4+IHRvd2FyZHMgdGhlIGVuZCBvZiBkb2N1bWVudGF0aW9uLCBy YXJlbHkgdG8gYmUgZm91bmQ/Cj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+PiBJJ20gaGF2ZSBiZWVuIGFu ZCBjdXJyZW50bHkgYW0gaW52b2x2ZWQgaW4gdmFyaW91cyBjb21wbGFpbnRzIHRvCj4gPiA+Pj4+ Pj4gcmVndWxhdG9ycyByZWdhcmRpbmcgY29tcGFuaWVzIGluIGZpbmFuY2UsIGhlYWx0aCwgcG9s aXRpY3MgYW5kCj4gPiByZWxpZ2lvbgo+ID4gPj4+Pj4+IGFsbCBkaXNjbG9zaW5nIGRhdGEgYmVj YXVzZSBvZiB0aGVzZSBwcml2YWN5IGFuZCBzZWN1cml0eSBmYWlsaW5ncy4KPiA+ID4+Pj4+Pgo+ ID4gPj4+Pj4+IEluIHNvbWUgY2FzZXMgcHV0dGluZyBhY2NvdW50IHNlY3VyaXR5IGF0IHJpc2sg YWxsb3dpbmcgZm9yIGFjY2Vzcwo+ID4gdG8KPiA+ID4+Pj4+PiBJbnZlc3RtZW50cyBvciB0byB0 YWtlIG91dCBsb2FucyBpbiBzb21lb25lJ3MgbmFtZSBvciBkYXRhIHRoYXQKPiA+IGNvdWxkCj4g PiA+Pj4+Pj4gZWFzaWx5IHB1dCBzb21lIHBlb3BsZSBlYXNpbHkgaW4gaGFybXMgd2F5IGluIHRo ZSB3cm9uZyBoYW5kcy4KPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+IEkgZG8gbm90IG1pbmQgaWYgeW91 IGhhdmUgYW4gaW5ub3ZhdGl2ZSBzdWdnZXN0aW9uIHRoYXQgZWR1Y2F0ZXMKPiA+ID4+Pj4+PiBk ZXZlbG9wZXJzIGFib3V0IGhvdyB0byBwcm90ZWN0IHByaXZhY3kgd2hlbiB1c2luZyB0aGVzZSBm ZWF0dXJlcywKPiA+IGJ1dAo+ID4gPj4+Pj4+IHVudGlsIHRoZW4gaXQgc2VlbXMgYXBwcm9wcmlh dGUgdG8gY29uc2lkZXIgbGVuZ3RocyBhcyBmYXIgYXMgdGhlCj4gPiAic21va2luZwo+ID4gPj4+ Pj4+IGtpbGxzIiBzdHlsZSB3YXJuaW5ncyBvbiBjaWdhcmV0dGUgcGFja2FnaW5nLCB0byB0aGUg ZG9jdW1lbnRhdGlvbgo+ID4gZm9yIHRoZQo+ID4gPj4+Pj4+IHdlYnNpdGUuLi4gSSd2ZSBub3Qg Z29uZSB0aGF0IGZhci4KPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+IFNvIGRvIHlvdSBjYXJlIGFib3V0 IHByaXZhY3kgb3IgZG8geW91IHdhbnQgdG8gdGVhY2ggdGhlIG5leHQKPiA+ID4+Pj4+PiBnZW5l cmF0aW9uIG9mIHdlYiBkZXZlbG9wZXJzIGhvdyB0byBjcmVhdGUgd2Vic2l0ZXMgdGhhdCBwdXQg cGVvcGxlCj4gPiBhdCByaXNrPwo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gSWYgeW91IGhhdmUgYSBi ZXR0ZXIgc29sdXRpb24gdGhhbiB0aGUgd2FybmluZyBtZXNzYWdlIHBsZWFzZQo+ID4gcHJvcG9z ZQo+ID4gPj4+Pj4+IGl0IGluc3RlYWQsIGJ1dCBkb24ndCBkZWxldGUgd2FybmluZ3MgdGhlcmUg dG8gcHJvdGVjdCBwZW9wbGUgZnJvbQo+ID4gdGhlCj4gPiA+Pj4+Pj4gcHJpdmFjeSBmYWlsaW5n cyBlbmRlbWljIHRoZSBkZXNpZ24gb2YgdGhlIHdlYiBzcGVjcy4KPiA+ID4+Pj4+Pgo+ID4gPj4+ Pj4+IEJlc3QKPiA+ID4+Pj4+PiBNYXJrCj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+ Cj4gPiA+Pj4+Pj4gT24gU2F0LCAxNSBTZXAgMjAxOCwgMTk6MjkgV2lsbGlhbSBCYW1iZXJnLCA8 d2JhbWJlcmdAbW96aWxsYS5jb20+Cj4gPiA+Pj4+Pj4gd3JvdGU6Cj4gPiA+Pj4+Pj4KPiA+ID4+ Pj4+Pj4gSGkKPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj4gVGhhbmtzIGZvciB0aGUgY29udHJpYnV0 aW9ucyB5b3UndmUgbWFkZSB0byBNRE4uIEkgZG8gYXBwcmVjaWF0ZQo+ID4geW91Cj4gPiA+Pj4+ Pj4+IGRyYXdpbmcgYXR0ZW50aW9uIHRvIHRoZSBwcml2YWN5IGlzc3VlcyBhcm91bmQgY2VydGFp biBIVE1MCj4gPiBlbGVtZW50cyBzdWNoCj4gPiA+Pj4+Pj4+IGFzIDxhPiBhbmQgPGltZz4uCj4g PiA+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+IEhvd2V2ZXIgSSdkIGxpa2UgdG8gcmVxdWVzdCB0aGF0IHlv dSBzdG9wIHJlaW5zdGF0aW5nIHRoZSAid2FybmluZyIKPiA+ID4+Pj4+Pj4gYmFubmVyIGF0IHRo ZSB0b3BzIG9mIHRoZSBwYWdlcy4gVGhlcmUgYXJlIHZlcnkgZmV3IHNpdHVhdGlvbnMgaW4KPiA+ IHdoaWNoCj4gPiA+Pj4+Pj4+IGl0J3MgYXBwcm9wcmlhdGUgdG8gdXNlIHRoaXMgYmFubmVyIGF0 IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCBJCj4gPiBkb24ndAo+ID4gPj4+Pj4+PiB0aGluayBp dCdzIGFwcHJvcHJpYXRlIGluIHRoaXMgc2l0dWF0aW9uLgo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+ PiBUaGFua3MKPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj4gV2lsbAo+ID4gPj4+Pj4+Pgo+ID4gPj4+ Pj4+Pgo+ID4gPj4KPiA+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gPiBkZXYtc2VjdXJpdHkgbWFpbGluZyBsaXN0Cj4gPiBkZXYtc2VjdXJp dHlAbGlzdHMubW96aWxsYS5vcmcKPiA+IGh0dHBzOi8vbGlzdHMubW96aWxsYS5vcmcvbGlzdGlu Zm8vZGV2LXNlY3VyaXR5Cj4gPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gZGV2LXNlY3VyaXR5IG1haWxpbmcgbGlzdAo+IGRldi1zZWN1cml0eUBs aXN0cy5tb3ppbGxhLm9yZwo+IGh0dHBzOi8vbGlzdHMubW96aWxsYS5vcmcvbGlzdGluZm8vZGV2 LXNlY3VyaXR5CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkZXYtc2VjdXJpdHkgbWFpbGluZyBsaXN0CmRldi1zZWN1cml0eUBsaXN0cy5tb3ppbGxhLm9y ZwpodHRwczovL2xpc3RzLm1vemlsbGEub3JnL2xpc3RpbmZvL2Rldi1zZWN1cml0eQo=