CiBBbGwsCgogSSBjYW4gc3BlYWsgb2YgSVRUIHdpdGggc29tZSBhdXRob3Rpcnkgc2luZSBJIHRv byBhdHRlbmRlZCBJVFQKVGVjaG5pY2FsIEluc3RpdHV0ZSBpbiBGdC4gV2F5bmUsIEluZGlhbmEK IGZvciB0d28geWVhcnMgZHVyaW5nIDE5ODEtMTk4My4gICBJIGF0dGVuZGVkIG1vc3RseSBiZWNh dXNlIEkgbmVlZGVkCm9mZmljaWFsIGRvY3VtZW50YXRpb24gdGhhdCBJIGtuZXcgCiB3aGF0IEkg c2FpZCBJIGtuZXcgYWJvdXQgZWxlY3Ryb25pY3MuICBNeSBkYWQgd2FzIGEgcmFkaW8tVFYgcmVw YWlybWFuCnNpbmNlIGhlIGxlZnQgdGhlIFUuUy4gQXJteSBpbiAxOTQ1LgogU28gSSB3YXMgYm9y biBpbnRvIGFuIGVsZWN0cm9uaWNzIGVudmlyb25tZW50LiAgQW5kIEkgbmV2ZXIgd2FudGVkIHRv CmRvIGFueXRoaW5nIGVsc2UuICBJIHRvb2sgZWxlY3Ryb25pY3MKIGluIEhpZ2ggc2Nob29sLiAg SSB3YXMgYSBNaXNzbGUgRmlyZSBDb250cm9sIFRlY2huaWNpYW4gaW4gdGhlIFUuUy4KTmF2eS4g IEFuZCB3aGVuIEkgbGVmdCB0aGUgTmF2eSwgSSBnb3QgCiBhIGpvYiBpbiBhIGZhY3RvcnkgdGhh dCBtYWtlcyByYWRpb3MgZm9yIHRoZSBVLlMgQWlyIEZvcmNlLgoKIEJ1dCB0aGF0IGlzbid0IHdo YXQgSSB3YW50ZWQgdG8gZG8gYWxsIG15IGxpZmUsIHNvIEkgd2VudCBsb29raW5nIGZvcgpvdGhl ciBvcHBvcnR1bml0aWVzIHdpdGggYSBiZXR0ZXIgCiBmdXR1cmUuICBIb3dldmVyLCB0aG9zZSBw ZW9wbGUgSSBtZXQgd2l0aCBzYWlkIHRoZXkgY291bGQgdGVsbCBJIHdhcwp2ZXJ5IGtub3dsZWRn YWJsZS4gIEJ1dCBJIGRpZG4ndCBoYXZlCiBhbnkgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiBvZiBl ZHVjYXRpb24uICBBbmQgdGhhdCB3YXMgYSBzdHVtYmxpbmcKYmxvY2suIChCVFcsIEknbSB0YWxr aW5nIG1pZCA3MCdzIGhlcmUpLgoKIFNvLCBJIGhlYXJkIGFib3V0IElUVCBmcm9tIGEgZnJpZW5k LCBhbmQgd2VudCB0byBjaGVjayBpdCBvdXQuICBJdCB3YXMKZXhwZW5zaXZlLiBBYm91dCAxMEsg cGVyIHllYXIgYXQgdGhlCiB0aW1lLiAgSSBnb3Qgc29tZSBncmFudHMgYW5kIG90aGVyIGZ1bmRp bmcsIGJ1dCBpdCBzdGlsbCBjb3N0IG1lIGFib3V0CjEySyBvciBzbyB3aGVuIEkgd2FzIGRvbmUu ICBBcyBmYXIgYXMKIEknbSBjb25jZXJuZWQsIGl0IHdhcyB0aGUgYmVzdCBtb25leSBJIGhhdmUg c3BlbnQgaW4gYSBsbmcgdGltZS4gIAogCiBKdXN0IGJlZm9yZSBteSBjbGFzcyBncmFkdWF0ZWQs IHRoZXJlIHdlcmUgc2V2ZXJhbCBjb21wYW5pZXMgdGhhdCBzZW50CnJlY3J1aXRlcnMgdG8gaW50 ZXJ2aWV3IGFuZCAKIGRlc2lnbmF0ZSBwb3RlbnRpYWwgaGlyZWVzLiAgTXkgYnJvdGhlci1pbi1s YXcgYW5kIEkgYm90aCBhdHRlbmRlZCBhdAp0aGUgc2FtZSB0aW1lLiAgQW5kIHdlIHdlcmUgYm90 aCAKIGhpcmVkIGF0IHRoZSBzYW1lIHRpbWUuICBCeSBUZXhhcyBJbnN0cnVtZW50cyBpbiBIb3Vz dG9uLCBUZXhhcyBVU0EuIApTbywgd2UgbW92ZWQgdG8gVGV4YXMgKGZyb20gSW5kaWFuYSkuCiBU LkkgcGFpZCBmb3Igb3VyIG1vdmUsIGFuZCB0aGV5IHB1dCB1cyB1cCBpbiBhIGhvdGVsIHVudGls IHdlIGZvdW5kIGEKaG91c2UuICBJIHdvcmtlZCBmb3IgVC5JIGZvciAxNSB5ZWFycywKIGFuZCB3 YXMgbGFpZCBvZmYuICBJIHdlbnQgYWNyb3NzIHRoZSBzdHJlZXQgdG8gYW5vdGhlZXIgY29tcGFu eSwKSW5wdXQtT3V0cHV0LCBhbiBPaWwgRmllbGQgU2VydmljZXMKIENvbXBhbnkuICBIZXJlIEkg d29ya2VkIG9uIGRlc2lnbmluZyB0aGUgbmV4dCBnZW5lcmF0aW9uIE1hcmluZSBPaWwKU3VydmV5 IEVxdWlwbWVudC4gIEFmdGVyIGEgZmV3IHllYXJzLAogSSB0cmFuc2ZlcnJlZCB0byBhIGRpZmZl cmVudCBkZXBhcnRtZW50LCBhbmQgaGF2ZSBiYXNpY2FsbHkgYmVlbiBoZXJlCnNpbmNlLgoKIFRo ZSBqaXN0IG9mIGFsbCBvZiB0aGlzIGlzIHRoYXQgSSBoYWQgc3Vic3RhbnRpYWwgZWxlY3Ryb25p Y3Mga25vd2xlZGdlCmFuZCBza2lsbHMgYmVmb3JlIGdvaW5nIHRvIAogSVRUIFRlY2guICBCdXQg SSBuZWVkZWQgb2ZmaWNpYWwgcHJvb2YgdGhhdCBJIGhhZCBwb3N0IHNlY29uZGFyeQplZHVjYXRp b24gYXQgYW4gYWNjcmVkaXRlZCBsZWFybmluZwogaW5zdGl0dXRpb24gYmVmb3JlIEkgY291bGQg YWR2YW5jZSB0byB0aGUgdHlwZSBvZiB3b3JrIEkgd2FudGVkIHRvIGRvLiAKU2luY2UgSSBncmFk dWF0ZWQgZnJvbSBJVFQgVGVjaCwgCiBJIGhhdmUgZG9uZSBleGFjdGx5IHRoYXQuICAKCiBNeSBv ZmZpY2lhbCB0aXRsZSBmb3IgdGhlIGxhc3QgMTIgeWVhcnMgb3Igc28gaXMgU2VuaW9yIEVsZWN0 cm9uaWNzIFImRApUZWNobmljaWFuLiAgSG93ZXZlciwgbXkgam9iIGlzIAogYmFzaWNhbGx5IHRo YXQgb2YgYW4gRW5naW5lZXIuICBJIGdldCBwYWlkIHdlbGwgZm9yIHdoYXQgSSBkby4gIEFuZCBJ Cmxpa2Ugd2hhdCBJIGRvLiAgSSdtIHN0aWxsIHdvcmtpbmcKIG9uIG5leHQgZ2VuZXJhdGlvbiBz ZWlzbWljIGVxdWlwbWVudCwgZXhjZXB0IHRoYXQgbm93IEknbSB3b3JraW5nIG9uCmdyb3VuZCBi YXNlZCBlcXVpcG1lbnQgdmVyc3VzIE1hcmluZQogYmFzZWQgb2YgYSBmZXcgeWVhcnMgYWdvLgoK IFRoZSBib3R0b20gbGluZSBmb3IgbWUgaXMgdGhhdCB0aGUgbW9uZXkgYW5kIHRpbWUgSSBzcGVu dCBhdCBJVFQgd2FzCndlbGwgd29ydGggaXQuICBBbmQgVC5JLiBwYWlkIG1lIHRvIAogZ28gdG8g Y29sbGVnZSBhbmQgZ2V0IGFuIHVuZGVyZ3JhZCBkZWdyZWUuICBNYW55IG90aGVyIGNvbXBhbmll cyBvZmZlcgp0aGlzIGluY2VudGl2ZSB0b28sIHNvIHlvdSBzaG91bGQKIGNoZWNrIHBvdGVudGlh bCBlbXBsb3llcnMgdG8gc2VlIGlmIHRoZXkgbWFrZSB0aGlzIG9mZmVyLiAgSWYgdGhleSBkbywK b3UgY2FuIHdvcmsgYW5kIGVhcm4geW91ciBkZWdyZWUKIGF0IHRoZSBzYW1lIHRpbWUsIGFuZCBo YXZlIGl0IHBhaWQgZm9yIGJ5IHlvdXIgZW1wbG95ZXIuCgogSSBkbyBub3QgcmVncmV0IGdvaW5n IHRvIElUVC4gIEl0IHdhcyB0aGUgYmVzdCB0aGluZyBmb3IgbWUgYXQgdGhlCnRpbWUsIGFuZCBp dCBoYXMgc2VydmVkIG1lIHdlbGwgdGhyb3VnaAogdGhlIHllYXJzLiAgIEkgd291bGQgdXJnZSBh bnlvbmUgd2FudGluZyB0byBnZXQgaW50byBlbGVjdHJvbmljcyBvcgpjb21wdXRlcnMgdG8gY29u c2lkZXIgSVRUIFRlY2guCiBJIGtub3cgaXQgaXMgYSBnb29kIHNjaG9vbC4gIEFuZCBhcyBhbiBG WUksIElUVCBoYXMgY2hhbmdlZCB0aGVpcgpmb3JtYXQgZnJvbSB3aGVuIEkgYXR0ZW5kZWQuICBJ dCBpcyBub3cKIHJ1biBtb3JlIGxpa2UgYSBjb2xsZWdlIHRoYW4gYSB0cmFkZSBzY2hvb2wuICBB bmQgSSBiZWxpZXZlIG1vc3Qgb2YgdGhlCmNvdXJzZXMgYXJlIG5vdyB0cmFuc2ZlcnJhYmxlIHRv CiBvdGhlciBjb2xsZWdlcyBhbmQgdW5pdmVyc2l0aWVzLiAgTXkgc29uZSBhdHRlbmRlZCBJVFQg YSBjb3VwbGUgb2YKeWVhcnMgYWdvLiAgSGUgaXMgbm93IGxpdmluZyBpbiBGdC4gCiBXYXluZS4g SGUgdG9vIHdhcyBpbiB0aGUgTmF2eSBhcyBhIE51Y2xlYXIgVGVjaCBhYm9hcmQgc3VibWFyaW5l cy4KCiBSZWdhcmRzLAoKIEppbSAKIAoKIAoKCgoKClJlZ2FyZHMsCgpKaW0KCj4gLS0tLS0tLS0g T3JpZ2luYWwgTWVzc2FnZSAtLS0tLS0tLQo+IFN1YmplY3Q6IFJlOiBbRUVdIFRoaW5raW5nIG9m IGZpbmlzaGluZyBteSBkZWdyZWUuLi4uLgo+IEZyb206IEFsZXhhbmRyb3MgTmlwaXJha2lzIDxh bmlwaXJha2lzQGdtYWlsLmNvbT4KPiBEYXRlOiBXZWQsIERlY2VtYmVyIDAxLCAyMDEwIDk6MDIg YW0KPiBUbzogIk1pY3JvY29udHJvbGxlciBkaXNjdXNzaW9uIGxpc3QgLSBQdWJsaWMuIiA8cGlj bGlzdEBtaXQuZWR1Pgo+IAo+IAo+IC0tSWYgSSBtYXkgaW50ZXJqZWN0IG15IG9waW5pb24gLS0K PiAKPiBJZiB5b3UgYXJlIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBhbmQgeW91IGFyZSB0aGlua2lu ZyBhYm91dCBjb2xsZWdlIC0tCj4gdGhlcmUgYXJlIHNldmVyYWwgd2F5cyBvZiBnZXR0aW5nIHRo cm91Z2ggY29sbGVnZS4gIFNvbWUgYXJlIGJldHRlcgo+IHRoYW4gb3RoZXJzLCBhbmQgSSBhbSBn b2luZyB0byBjb21tZW50IG9ubHkgb24gbXkgcGVyc29uYWwgZXhwZXJpZW5jZQo+IHdpdGggdGhl IGVkdWNhdGlvbiBzeXN0ZW0gaGVyZS4gIEkgQU0gTk9UIFRSWUlORyBUTyBTVEFSVCBBIERJU0NV U1NJT04KPiBPTiBQT0xJVElDUy4KPiAKPiBXaXRoIHRoYXQgc2FpZCwgSSB3ZW50IHRvIElUVCBU ZWNobmljYWwgSW5zdGl0dXRlIGZvciBhbiBhc3NvY2lhdGVzCj4gZGVncmVlLiAgWXVwLCBJIHNw ZW50IHRoZSB0aW1lIGFuZCBtb25leSB0byBnbyB0byB0aGF0IHdvbmRlcmZ1bAo+IGV4YW1wbGUg b2YgcHJpdmF0ZSBlZHVjYXRpb24sIGFuZCBpdCB3YXMgaG9ycmlibGUuICBJIGFtIHN0aWxsIHBh eWluZwo+IGJhY2sgdGhlIG1vbmV5IGZvciBJVFQgdGVjaCwgYW5kIHByb2JhYmx5IHdpbGwgYmUg Zm9yIG1hbnkgeWVhcnMgKGl0Cj4gaXMgYXQgbGVhc3QgMzNrIHRvIGdvIHRoZXJlLCBvciB3YXMg d2hlbiBJIGF0dGVuZGVkIGluIDIwMDMpLgo+IAo+IEhhdmluZyBzcGVudCB0aGF0IGtpbmQgb2Yg bW9uZXksIEkgd2FzIG9idmlvdXNseSBpbnRlcmVzdGVkIGluCj4gdHJhbnNmZXJyaW5nIGEgZmV3 IG9mIHRoZSBjcmVkaXRzIHRvd2FyZHMgbXkgQlMgZGVncmVlLiAgQXNrZWQgVUNGCj4gKFVuaXZl cnNpdHkgb2YgQ2VudHJhbCBGbG9yaWRhLCBhIHB1YmxpYyB1bml2ZXJzaXR5KSB3aGF0IEkgY291 bGQKPiB0cmFuc2ZlciwgdGhleSBzYWlkICJFeGFjdGx5IG5vdGhpbmcuIgo+IAo+IEdpdmVuIHRo aXMsIGFuZCBrbm93aW5nIGhvdyB0aGVzZSBzdHVwaWQgY29sbGVnZXMgd29yaywgSSBhc3N1bWVk IHRoYXQKPiBEZVZyeSB3b3VsZCB0cmFuc2ZlciBhdCBsZWFzdCBzb21lIG9mIG15IElUVCBjcmVk aXRzLiAgVGhleSB3b3VsZCAobm90Cj4gbWFueSwgb25seSBhIGZldykgYnV0IGl0IHdhcyBnb2lu ZyB0byBiZSBhbm90aGVyIDQwayB0byBnZXQgbXkKPiB1bmRlcmdyYWQuCj4gCj4gSSBoYXZlIGEg c21hbGwgYml0IG9mIGV4cGVyaWVuY2Ugd2l0aCBEZVZyeSwgaXQgaXMgKElNSE8pIG5vdCB0b28g ZmFyCj4gZnJvbSBJVFQgdGVjaCBpbiBxdWFsaXR5IG9mIGVkdWNhdGlvbi4gIFNvbWUgcGVvcGxl IGdldCBhIGxvdCBvdXQgb2YKPiBpdCwgb3RoZXJzIG5vdCBzbyBtdWNoLgo+IAo+IE15IGN1cnJl bnQgcGxhbiAod2hpY2ggaXMgYmFzaWNhbGx5IG9uIGhvbGQgYmVjYXVzZSBJIGhhdmUgb3RoZXIK PiB0aGluZ3MgZ29pbmcgb24pIGlzIHRvIGNvbXBsZXRlIGFub3RoZXIgQXNzb2NpYXRlcyBEZWdy ZWUgd2l0aCBhCj4gY29tbXVuaXR5IGNvbGxlZ2UsIGFuZCB0aGVuIHRyYW5zZmVyIHRvIEZTVSAo RmxvcmlkYSBTdGF0ZSBVbml2ZXJzaXR5KQo+IGZvciBhIEJTIGluIENvbXB1dGVyIFNjaWVuY2Uu ICBUaGUgd2hvbGUgaWRlYSBvZiB0aGUgZGVncmVlIGlzIG9mCj4gZHViaW91cyB1c2FiaWxpdHkg dG8gbWUgYXQgdGhpcyBwb2ludCBzaW5jZSBJIGFtIGNvbWluZyB1cCBvbiAxMCB5ZWFycwo+IG9m IHByb2Zlc3Npb25hbCBleHBlcmllbmNlIGluIENvbXB1dGVyIFByb2dyYW1taW5nLgo+IAo+IE9i dmlvdXNseSBJIGFtIGEgQ1MgbWFqb3IsIHNvIHBlcmhhcHMgZm9yIG90aGVyIHByb2dyYW1zIHNv bWV0aGluZwo+IGxpa2UgSVRUIHdvdWxkIGJlIGdvb2QgKHRoZXkgZGlkIHNlZW0gdG8gaGF2ZSBz b21lIGRlY2VudCBlbGVjdHJvbmljcwo+IGluc3RydWN0b3JzIC0gYXQgVHJveSxNSSBDYW1wdXMs IGJ1dCBJIG5ldmVyIHRvb2sgYW55IGVsZWN0cm9uaWNzCj4gY291cnNlcywgYW5kIHdvdWxkbid0 IGtub3cgYmFkIGZyb20gZ29vZCBhbnl3YXlzKS4KPiAKPiBXaXRoIGFsbCB0aGF0IHNhaWQgLS0K PiAKPiAqICBPbmxpbmUgaXMgT0sgaWYgaXQncyBvZmZlcmVkIHRocm91Z2ggYSBwdWJsaWMgdW5p dmVyc2l0eSAobWFueSBhcmUKPiBiZWdpbm5pbmcgdG8gb2ZmZXIgdGhpcyBiZWNhdXNlIHRoZSBk ZW1vZ3JhcGhpYyBvZiB0aGUgY29sbGVnZSBnb2luZwo+IHB1YmxpYyBzZWVtcyB0byBiZSBzaGlm dGluZyB0byB3b3JraW5nIGFkdWx0cykKPiAKPiAqICBJZiB5b3UgZ28gcHJpdmF0ZSwgZXhwZWN0 IHRvIHBheSBtdWNoIG1vcmUgZm9yIHlvdXIgZGVncmVlCj4gCj4gKiAgTWFueSBwcml2YXRlIHNj aG9vbHMgYXJlIGp1c3QgZGVncmVlIG1pbGxzIChub3RlLCB0aGVyZSBhcmUgcGxlbnR5Cj4gb2Yg Z29vZCBwcml2YXRlIHVuaXZlcnNpdGllcyBvdXQgdGhlcmUsIEkgYW0gdGFsa2luZyBhYm91dCB0 aGUgb25lcwo+IHRoYXQgYWR2ZXJ0aXNlIG9uIFRWIHByaW1hcmlseSkuICBJbiBvdGhlciB3b3Jk cywgeW91IGFyZSBidXlpbmcgYQo+IGRlZ3JlZS4gIERvbid0IGV4cGVjdCB0byBsZWFybiBhIHRo aW5nIGFib3V0IHdoYXQgeW91IGFyZSBnb2luZyB0bwo+IHNjaG9vbCBmb3IuICBEb24ndCBleHBl Y3QgdG8gZWFybiBhIGdvb2Qgd2FnZSB3aXRoIHRoaXMgImRlZ3JlZS4iCj4gKHRoZXJlIGFyZSBl eGNlcHRpb25zLCBwYXJ0aWN1bGFybHkgaWYgeW91IGFyZSBnb29kIGF0IHdoYXQgeW91IGFyZQo+ IGdvaW5nIHRvIHNjaG9vbCBmb3IsIGJ1dCB0aGUgZGVncmVlIGlzIG5lYXJseSB1c2VsZXNzKS4K PiAKPiAqICBQdWJsaWMgdW5pdmVyc2l0aWVzIGFuZCBjb2xsZWdlcyB3aWxsIGFsbW9zdCBhbHdh eXMgdHJhbnNmZXIKPiBjcmVkaXRzIGFtb25nc3QgdGhlbXNlbHZlcy4gIFByaXZhdGUgY29sbGVn ZXMgYW5kIHVuaXZlcnNpdGllcyBtYXkgb3IKPiBtYXkgbm90IChleHBlY3QgdGhhdCBpZiB5b3Ug Z290IHlvdXIgZGVncmVlIGF0IGEgZGVncmVlIG1pbGwsIHlvdSB3aWxsCj4gbm90IGJlIGFibGUg dG8gdHJhbnNmZXIgeW91ciBjcmVkaXRzIHRvIGEgcmVwdXRhYmxlIHB1YmxpYyB1bml2ZXJzaXR5 KQo+IAo+ICogIFRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvIGEgZGVncmVlLiAgRXhwZWN0IGVhc3kg ZGVncmVlcyB0byBjb21lIGZyb20KPiBkZWdyZWUgbWlsbHMgYW5kIGJlIG9mIG5lYXIgemVybyB1 c2VmdWxuZXNzIGluIGEgcHJvZmVzc2lvbmFsCj4gZW52aXJvbm1lbnQuCj4gCj4gKiAgR29pbmcg dG8gYSBwdWJsaWMgdW5pdmVyc2l0eSBtZWFucyBhIHdob2xlIGJ1bmNoIG9mIGV4dHJhIGNvdXJz ZXMKPiAoaGVyZSBpbiBGbG9yaWRhLCB5b3UgbmVlZCBhdCBsZWFzdCBvbmUgeWVhciBvZiBmb3Jl aWduIGxhbmd1YWdlIHRvCj4gZXZlbiB0b3VjaCB0aGUganVuaW9yIGxldmVsIGNvdXJzZXMgZm9y IGV4YW1wbGUpLiAgVGhlcmUgaXMgbm8gd2F5IG91dAo+IG9mIHRoZW0uCj4gCj4gKiAgR29pbmcg cHJpdmF0ZSBkb2Vzbid0IG1lYW4geW91IHdpbGwgYmUgYWJzb2x2ZWQgb2YgdGhlc2UgY291cnNl cy4KPiAKPiAqICBJZiBhIHByaXZhdGUgY29sbGVnZSBkb2Vzbid0IG1ha2UgeW91IHRha2UgbGli ZXJhbCBhcnRzIGNvdXJzZXMKPiAoRW5nbGlzaCwgUHVibGljIFNwZWFraW5nLCBldGMuKSB0aGVu IEkgd291bGQgcnVuLiAgR2VuZXJhbGx5LCBpbiBteQo+IGV4cGVyaWVuY2UsIHRoaXMgbWVhbnMg dGhleSBhcmUgZWl0aGVyIGEgZGVncmVlIG1pbGwgb3IgYSB0ZWNoIHNjaG9vbAo+IChjYXJlZXIg dHJhaW5pbmcpLgo+IAo+IEkgc2FpZCB0aGF0IGFsbCB0byBzYXkgLSBpbiB0aGUgVVMgKElNSE8p IHRoZXJlIGlzIGJhc2ljYWxseSBvbmUgYmlnCj4gZGlzdGluZ3Vpc2hpbmcgZmFjdG9yLiAgRWl0 aGVyIHlvdSBhcmUgZ29pbmcgdG8gYSBkZWdyZWUgbWlsbCwgb3IgYQo+IGdvb2Qgc2Nob29sLiAg VGhlIGZvcm1lciBpcyBhbG1vc3QgYWx3YXlzIGdvaW5nIHRvIGJlIGEgcHJpdmF0ZQo+IHNjaG9v bC4gIFRoZXJlIGFyZSBzb21lIHB1YmxpYyB1bml2ZXJzaXRpZXMgdGhhdCBhcmUgbm90IGFzIGdv b2QgYXMKPiBvdGhlcnMsIGJ1dCBpbiBteSBleHBlcmllbmNlLCBpZiB0aGV5IGFyZSBwdWJsaWMg eW91IHdpbGwgcHJvYWJhYmx5Cj4gZ2V0IGEgY2hlYXBlciBlZHVjYXRpb24sIGFuZCBvbmUgdGhh dCBpcyBtb3JlIHVzZWZ1bCB0byB5b3UKPiBwcm9mZXNzaW9uYWxseS4KPiAKPiBBbm90aGVyIG5v dGUsIGlmIG1vbmV5IGlzIGEgZmFjdG9yLCBhbHdheXMgZ28gaW4gc3RhdGUuICBJbiBzdGF0ZQo+ IHR1aXRpb24gaXMgYWxtb3N0IGFsd2F5cyBjaGVhcGVyIHRoYW4gb3V0IG9mIHN0YXRlLiAgSSBr bm93IHRoYXQgaXMgYQo+IG5vLWJyYWluaWVyIHRvIG1vc3QgcGVvcGxlLCBidXQgd2hlbiBJIHN0 YXJ0ZWQgcmVzZWFyY2hpbmcgaXQsIEkgd2FzCj4gY29tcGxldGVseSBmbG9vcmVkIGJ5IGhvdyBt dWNoIG9mIGEgZGlmZmVyZW5jZSB0aGVyZSB3YXMuCj4gCj4gRmluYWxseSwgYmUgY2FyZWZ1bCBh Ym91dCBVbml2ZXJzaXRpZXMgdGhhdCB0b3V0IHRoZWlyIGFjY3JlZGl0YXRpb24KPiB0b28gbXVj aC4gIEluIG15IGV4cGVyaWVuY2UsIHRoaXMgbWVhbnMgdGhhdCB0aGUgYWNjcmVkaXRhdGlvbiBp cwo+IHVzZWxlc3MgKEFMV0FZUyByZXNlYXJjaCB0aGVpciBjbGFpbXMpLCBhbmQgdGhhdCB0aGV5 IGFyZSBwdXNoaW5nIGl0Cj4gYmVjYXVzZSB0aGV5IGhhdmUgbGl0dGxlIGVsc2UgdG8gYnJpbmcg dG8gdGhlIHRhYmxlLgo+IAo+IEFsZWtzZWkKPiAKPiBPbiAxIERlY2VtYmVyIDIwMTAgMDk6MTIs IFhpYW9mYW4gQ2hlbiA8eGlhb2ZhbmNAZ21haWwuY29tPiB3cm90ZToKPiA+IE9uIFdlZCwgRGVj IDEsIDIwMTAgYXQgNzowMyBQTSwgQ0RCIDxjb2xpbkBidGVjaC1vbmxpbmUuY28udWs+IHdyb3Rl Ogo+ID4+Cj4gPj4gOjogIkRvbid0IGV2ZW4gdGhpbmsgb2YgcHV0dGluZyB0aGF0IHVuaXZlcnNp dHkgb24geW91ciBVQ0FTIGZvcm0uCj4gPj4gOjogQXBwbHkgdG8gTGVlZHMgYW5kIFlvcmsgaW5z dGVhZC4iCj4gPj4KPiA+PiBXaGF0J3Mgd3Jvbmcgd2l0aCB0aGUgT3BlbiBVbml2ZXJzaXR5LCBv ciBoYXMgdGhhdCBnb25lIGRvd25oaWxsIGFzIHdlbGw/Cj4gPj4KPiA+PiAoTWVtb3JpZXMgb2Yg RHIgQWxsYW4gU29sb21vbiB3aXRoIHRoZSB3aWRlc3Qga2lwcGVyIHRpZSB0byBncmFjZQo+ID4+ IHRlbGV2aXNpb24gYW5kIGJlbGwgYm90dG9tcykuCj4gPgo+ID4gT3BlbiBVbml2ZXJzaXR5IGlz IG9uZSBvZiB0aGUgwqBVSyB1bml2ZXJzaXRpZXMgd2hpY2ggYXJlCj4gPiBub3QgdGhhdCByZWNv Z25pemVkIGJ5IHF1aXRlIHNvbWUgZW1wbG95ZXJzIGhlcmUgaW4gU2luZ2Fwb3JlLgo+ID4KPiA+ Cj4gPiAtLQo+ID4gWGlhb2Zhbgo+ID4gLS0KPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20gUElD L1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+ID4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9w dGlvbnMgYXQKPiA+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNs aXN0Cj4gPgo+IAo+IC0tIAo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20gUElDL1NYIEZBUSAmIGxp c3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gaHR0 cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKCgotLSAKaHR0cDov L3d3dy5waWNsaXN0LmNvbSBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdlIHlv dXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9s aXN0aW5mby9waWNsaXN0Cg== .