CkhtbS4uIApJIHdvdWxkbid0IGdlbmVyYWxseSBoYW5kbGUgYSBidXR0b24gd2l0aCBhbiBpbnQs IGJ1dCBpZiBJIGRpZC4uCgpHaXZlbiB2ZWN0b3JlZCBpbnRzIG9uIHRoZSBBVlIsIGFuZCBhIGJp dCBvZiBmb3JldGhvdWdodCBpbiB0aGUgY29kZSwgaXQgd291bGQgbG9vayBzb21ldGhpbmcgbGlr ZSB0aGlzOgpJIHR5cGljYWxseSByZXNlcnZlIGEgbG93IHJlZ2lzdGVyIGFuZCBjYWxsIGl0IHN0 ZW1wIGZvciBzYXZpbmcgdGhlIHN0YXR1cyByZWdpc3RlciBkdXJpbmcgaW50cyBiZWNhdXNlIGl0 J3MgZmFzdGVyIHRoYW4gcHVzaGluZyBhbmQgcG9wcGluZy4KSSBhbHNvIHR5cGljYWxseSByZXNl cnZlIG9uZSBvciB0d28gcmVnaXN0ZXJzIGZvciB1c2UgYXMgdGVtcCBpbiBpbnRlcnJ1cHRzIG9u bHksIGNhbGxpbmcgdGhlbSBJdGVtcCBhbmQgSXRlbXAyLiAgSSBkb24ndCByZW1lbWJlciBldmVy IG5lZWRpbmcgbW9yZSB0aGFuIHR3by4KCkJ1dHRvbl9Db3VudCBjb3VsZCBiZSBhIGNvdW50IG9m IGV2ZW50cywgb3IgaXQgY291bGQgc2VydmUgYXMgYSBmbGFnLCB3aXRoIHRoZSBoYW5kbGVyIHNl dHRpbmcgaXQgYmFjayB0byB6ZXJvIHdoZW4gdGhlIGV2ZW50IGhhcyBiZWVuIGRlYWx0IHdpdGgu CgoKUGluX0ludF9WZWN0b3I6CglJbglzdGVtcCwgc3JlZwk7IDEgY2xvY2sgY3ljbGUgICBTYXZl IHNyZWcsIG1pZ2h0IG5vdCBhY3R1YWxseSBiZSBuZWVkZWQgZGVwZW5kaW5nIG9uIHRoZSBhcHBs aWNhdGlvbi4KCUluYwlidXR0b25fY291bnQJOzEgY2xvY2sgY3ljbGUgICAgR2l2ZW4gaXQncyBo YW5kbGVkIGJ5IGFuIGludCwgSSdkIHdhbnQgdGhlIHZhcmlhYmxlIHRvIGxpdmUgaW4gYSBsb3cg cmVnaXN0ZXIKCU91dAlzcmVnLHN0ZW1wCTsgMSBjbG9jayBjeWNsZSAgIHJlc3RvcmUgc3JlZwoJ UmV0aS4gIDsgNCBvciA1IGNsb2NrIGN5Y2xlcy4KCmh0dHA6Ly93d3cuYXZyLXR1dG9yaWFscy5j b20vc2l0ZXMvZGVmYXVsdC9maWxlcy9JbnN0cnVjdGlvbiUyMFNldCUyMFN1bW1hcnkucGRmCgpH ZXR0aW5nIHRvIHRoZSBJU1IgbWlnaHQgdGFrZSBhIGZldyBtb3JlIGNsb2NrcywgYXMgdGhlIHJ1 bm5pbmcgaW5zdHJ1Y3Rpb24gbmVlZHMgdG8gZmluaXNoLCB0aGVuIGhhcmR3YXJlIHRha2VzIHlv dSB0byB0aGUgdmVjdG9yIHRhYmxlLCB3aGVyZSB5b3UnbGwgaGF2ZSBhIApSY2FsbCAgUGluX0lu dF9WZWN0b3IgIHdoaWNoIHdpbGwgdGFrZSB0aHJlZSBvciBmb3VyIGNsb2Nrcy4KClNvIGF0IDgg TUh6LCB3ZSBhcmUgdGFsa2luZyBhYm91dCAxMiBjbG9ja3Mgb3IgM3VTLgoKUHJldHR5IHN1cmUg dGhhdCdzIHJpZ2h0LCB3aXRob3V0IHB1bGxpbmcgb3V0IGEgYm9hcmQgYW5kIGNvZGluZyBpdCB1 cC4KSSBoYXZlIGFsc28gdXNlZCBvbmUgb3IgdHdvIHJlZ2lzdGVycyBmb3IgZmxhZ3MsIGFuZCBp dCB3b3VsZCBsb29rIHNvbWV0aGluZyBsaWtlOgoKCVNicglGbGFncyxCdXR0b24uICAgOzEgY3lj bGUuICAgTm90IGFueSBmYXN0ZXIgdGhhbiBpbmMgb2YgYSByZWdpc3Rlci4KCglTZXIJRmxhZ3Mg O2NhbiBkb2l0IGluIG9uZSBjeWNsZSBhbmQgZWxpbWluYXRlIHRoZSBuZWVkIHRvIHNhdmUgU1JF Rywgc2F2aW5nIHR3byBjbG9ja3MuCgpIb3cgbWFueSBtaWNyb3NlY29uZHMgb24gYW4gOCBNSHog UElDLCBhc3N1bWluZyB0aGlzIGlzbid0IHlvdXIgb25seSBlbmFibGVkIGludGVycnVwdCBzb3Vy Y2U/CgoKCgotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQpGcm9tOiBwaWNsaXN0LWJvdW5jZXNA bWl0LmVkdSA8cGljbGlzdC1ib3VuY2VzQG1pdC5lZHU+IE9uIEJlaGFsZiBPZiBDLiBBYm5leQpT ZW50OiBUaHVyc2RheSwgSnVseSAyNiwgMjAxOCAxOjI4IFBNClRvOiBNaWNyb2NvbnRyb2xsZXIg ZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLiA8cGljbGlzdEBtaXQuZWR1PgpTdWJqZWN0OiBSZTog W1BJQ10gWHByZXNzIFBJQzE2RjE4NDQ2IEV2YWx1YXRpb24gQm9hcmQKClNoZWVzaC4gIEkgY29w aWVkIHRoYXQgKHNsb3cpIGNvZGUgZnJvbSB0aGUgTUNDIGdlbmVyYXRlZCBmaWxlcyBmb3Igc29t ZSBvZiBteSBvd24gYml0LXNwZWNpZmljIHJlZ2lzdGVyIG1vZHMuCgpGb3IgZXhhbXBsZSBJIHRo b3VnaHQgaXQnZCBiZSBjb29sIHRvIGZsYXNoIHRoZSBMRUQgKG9yIHR1cm4gaXQgb2ZmKSB3aXRo IGEgYnV0dG9uIHByZXNzIHRoYXQgdG9nZ2xlcyBUTVIyIG9uIGFuZCBvZmYgKGFuZCB3YWl0IGZv ciBhIHRoZSBpbnRlcnJ1cHQsIGJsYWgpIHVzaW5nIHRoYXQgWE9SIGNvZGUgb24gdGhlIHRpbWVy IG9uIGJpdC4KCkxpdHRsZSBkaWQgSSBrbm93IHRoYXQgbXkgc2xlZWsgYW5kIGFnaWxlIEludGVy cnVwdCBTZXJ2aWNlIFJlcXVlc3Qgd2FzIGEgaGFpcnkgbW9uc3RlciEKCkJVVCEgV2hhdCBpcyB0 aGF0PyAgSSBkb24ndCBnZXQgdGhvc2UgdGhyZWUgZ290b3MgYXQgdGhlIGJvdHRvbSBvZiB0aGUg ImZhc3QiIGNvZGUuCgoKT24gNy8yNS8xOCwgV2lsbGlhbSBXZXN0ZmllbGQgPHdlc3Rmd0BtYWMu Y29tPiB3cm90ZToKPgo+Pj4gSSBmb3VuZCB0aGlzIHNtYWxsIGNvbXBhcmF0aXZlIHdpdGggYW4g QXJkdWlubzoKPj4+IGh0dHBzOi8vd3d3LmJpdHNuYmxvYnMuY29tL2Jsb2cvcGljMTZmMTg0NDYt dnMtYXJkdWluby11bm8tb3ZlcnZpZXctCj4+PiBzcGVlZC1jb21wYXJpc29uLyAKPj4+IDxodHRw czovL3d3dy5iaXRzbmJsb2JzLmNvbS9ibG9nL3BpYzE2ZjE4NDQ2LXZzLWFyZHVpbm8tdW5vLW92 ZXJ2aWV3Cj4+PiAtc3BlZWQtY29tcGFyaXNvbi8+Cj4+Cj4+IEnigJltIHByZXR0eSBzdXJlIHRo YXQgcG9zdCBpcyBwcmV0dHkgZGVlcGx5IGZsYXdlZC4KPgo+IEhtbS4gIEl0IGlzbuKAmXQgZHVl IHRvIGNsb2NrIGNvbmZpZ3VyYXRpb24gcHJvYmxlbXMgYXQgYWxsLgo+IE15IDQ0NiBib2FyZCBo YXMgYXJyaXZlcywgYW5kIEkgdHJpZWQgdGhlIHNhbWUgYmVuY2htYXJrIGFuZCBnb3QgdGhlIAo+ IHNhbWUgcmVzdWx0cyBhcyBpbiB0aGUgYmxvZzsgMy40IHVTIHRvIHRvZ2dsZSBhIGJpdC4KPiBB bmQgSSBtYWRlIHJlYWxseSBzdXJlIHRoYXQgdGhlIGNsb2NrIHNldHRpbmdzIHdlcmUgY29ycmVj dOKApgo+Cj4gSXQgdHVybnMgb3V0IHRoYXQgdGhpcyBzZWVtcyB0byBiZSBkdWUgdG8gYSBjb21i aW5hdGlvbiBvZiB0aGUgd2F5IAo+IHRoYXQgdGhlIENvZGUgQ29uZmlndXJhdG9yIGdlbmVyYXRl cyBjb2RlLCBhbmQgdGhlIGxhY2sgb2YgCj4gb3B0aW1pemF0aW9uIGluIHRoZSBmcmVlIGNvbXBp bGVyIHZlcnNpb24uCj4KPiBUaGUgZGVmYXVsdCBNQ0Mgb3V0cHV0IChwaW5fbWFuYWdlci5oKSBp bXBsZW1lbnRzIHRvZ2dsaW5nIGxpa2U6Cj4KPiAjZGVmaW5lIElPX1JBMl9Ub2dnbGUoKSAgICAg ICAgICAgICBkbyB7IExBVEFiaXRzLkxBVEEyID0gfkxBVEFiaXRzLkxBVEEyOyB9Cj4gd2hpbGUo MCkKPgo+Cj4gVGhlIEhlbGxvX3dvcmxkIHByb2plY3QgKGZyb20gYSBtaWNyb2NoaXAgZXhhbXBs ZSBwcm9qZWN0KSBJIGhhZCBmb3IgCj4gbXkKPiAxNmYxODg1NSBoYWQ6Cj4KPiAjZGVmaW5lIElP X1JBMF9Ub2dnbGUoKSAgIGRvIHsgTEFUQTAgPSB+TEFUQTA7IH0gd2hpbGUoMCkKPgo+IEFuZCBn dWVzcyB3aGF0PyAgVGhlIG9iamVjdCBjb2RlIHByb2R1Y2VkIGlzIHF1b3RlIGRpZmZlcmVudC4g IAo+IE1hbnVhbGx5IHN1YnN0aXR1dGluZyBpbiBjb2RlLCB3ZSBoYXZlOgo+Cj4gISAgICAgIGRv IHsgTEFUQWJpdHMuTEFUQTIgPSB+TEFUQWJpdHMuTEFUQTI7IH0gd2hpbGUoMCk7Cj4gMHgyNjog QkNGIFNUQVRVUywgMHgwCj4gMHgyNzogTU9WTEIgMHgwCj4gMHgyODogQlRGU1MgTEFUQSwgMHgy Cj4gMHgyOTogQlNGIFNUQVRVUywgMHgwCj4gMHgyQTogQlRGU0MgU1RBVFVTLCAweDAKPiAweDJC OiBHT1RPIDB4MkQKPiAweDJDOiBHT1RPIDB4MzAKPiAweDJEOiBNT1ZMQiAweDAKPiAweDJFOiBC U0YgTEFUQSwgMHgyCj4gMHgyRjogR09UTyAweDMyCj4gMHgzMDogTU9WTEIgMHgwCj4gMHgzMTog QkNGIExBVEEsIDB4Mgo+IDB4MzI6IEdPVE8gMHgyNgo+IDB4MzM6IEdPVE8gMHgyNgo+ICEgICAg fQo+IDB4MzQ6IEdPVE8gMHgyNgo+Cj4gdnMKPgo+ICEgICAgICAgZG8geyBMQVRBMiA9IH5MQVRB MjsgfSB3aGlsZSgwKTsKPiAweDI2OiBNT1ZMVyAweDQKPiAweDI3OiBNT1ZMQiAweDAKPiAweDI4 OiBYT1JXRiBMQVRBLCBGCj4gMHgyOTogR09UTyAweDI2Cj4gMHgyQTogR09UTyAweDI2Cj4gISAg ICB9Cj4gMHgyQjogR09UTyAweDI2Cj4KPgo+IEdyci4gIFNvbWUgb2YgdGhlIGV4dHJhIGdvdG/i gJlzIGRpc2FwcGVhciB3aXRoIC1PMS4KPgo+IFRoZSBsb2NhbCBNQ0MgZ2VuZXJhdGVzIHRoZSBz bG93IHZlcnNpb24gZm9yIHRoZSAxODg1NSBhcyB3ZWxsOyBpdCB3YXMgCj4gdGhlIG9ubGluZSBl eGFtcGxlIHRoYXQgaGFkIHRoZSBmYXN0ZXIgdmVyc2lvbi4KPiBJIHdvbmRlciBpZiB0aGVyZSBp cyBhIHdheSB0byBjb250cm9sIHRoaXMsIG9yIHdoZXRoZXIgaXQgd2FzIHZlcnNpb24gCj4gZGVw ZW5kZW50IG9yIHNvbWV0aGluZy4KPgo+IEJpbGxXCj4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlz dC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUgCj4gVmlldy9j aGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQgCj4gaHR0cDovL21haWxtYW4ubWl0LmVk dS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPgoKCi0tCklmIHlvdSdyZSBpbiBteSBiYW5kIHlv dSBjYW4ndCBoYXZlIHRvbyBtdWNoIG9mIGEgc2Vuc2Ugb2YgZGlnbml0eS4gLS0gIldlaXJkIEFs IiBZYW5rb3ZpYwoKLS0KaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElD L1NYIEZBUSAmIGxpc3QgYXJjaGl2ZSBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9u cyBhdCBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAoKLS0g Cmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0 IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21h aWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .