From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D6B710E49B for ; Tue, 31 Oct 2023 12:24:02 +0000 (UTC) From: "Hogander, Jouni" To: "Joshi, Kunal1" , "igt-dev@lists.freedesktop.org" Date: Tue, 31 Oct 2023 12:23:44 +0000 Message-ID: References: <20231031080949.1145422-1-kunal1.joshi@intel.com> <20231031080949.1145422-7-kunal1.joshi@intel.com> In-Reply-To: <20231031080949.1145422-7-kunal1.joshi@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <44C67FBC27519946929EA4B4F6AA12DF@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 6/7] tests/intel/kms_psr: made test compaitable with pr List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Murthy, Arun R" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gVHVlLCAyMDIzLTEwLTMxIGF0IDEzOjM5ICswNTMwLCBLdW5hbCBKb3NoaSB3cm90ZToKPiBN b2RpZmllZCBrbXNfcHNyIHRvIGhhdmUgc3VwcG9ydCBmb3IgUFIuCj4gCj4gdjI6IHJlbW92ZSBz ZXRfb3V0cHV0IGFuZCBoYXZlIG91dHB1dHMgKEpvdW5pKQo+IHYzOiBsb29wIG92ZXIgY29ubmVj dGVkIG91dHB1dHMgKEpvdW5pKQo+IAo+IENjOiBKb3VuaSBIw7ZnYW5kZXIgPGpvdW5pLmhvZ2Fu ZGVyQGludGVsLmNvbT4KPiBDYzogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5j b20+Cj4gQ2M6IEFydW4gUiBNdXJ0aHkgPGFydW4uci5tdXJ0aHlAaW50ZWwuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IEt1bmFsIEpvc2hpIDxrdW5hbDEuam9zaGlAaW50ZWwuY29tPgo+IC0tLQo+IMKg dGVzdHMvaW50ZWwva21zX3Bzci5jIHwgMzgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0KPiAtLQo+IMKgMSBmaWxlIGNoYW5nZWQsIDI4NiBpbnNlcnRpb25zKCspLCA5 NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwva21zX3Bzci5jIGIv dGVzdHMvaW50ZWwva21zX3Bzci5jCj4gaW5kZXggODQ4NWU5ODk0Li5mZWIyNDMyOWYgMTAwNjQ0 Cj4gLS0tIGEvdGVzdHMvaW50ZWwva21zX3Bzci5jCj4gKysrIGIvdGVzdHMvaW50ZWwva21zX3Bz ci5jCj4gQEAgLTI1LDcgKzI1LDcgQEAKPiDCoC8qKgo+IMKgICogVEVTVDoga21zIHBzcgo+IMKg ICogQ2F0ZWdvcnk6IERpc3BsYXkKPiAtICogRGVzY3JpcHRpb246IFRlc3RzIGJlaGF2aW91ciBv ZiBQU1IgJiBQU1IyCj4gKyAqIERlc2NyaXB0aW9uOiBUZXN0cyBiZWhhdmlvdXIgb2YgUFNSICYg UFNSMiAmIFBSCj4gwqAgKi8KPiDCoAo+IMKgI2luY2x1ZGUgImlndC5oIgo+IEBAIC0zOSwxNCAr MzksMTQgQEAKPiDCoCNpbmNsdWRlICJ4ZS94ZV9xdWVyeS5oIgo+IMKgCj4gwqAvKioKPiAtICog U1VCVEVTVDogYmFzaWMKPiArICogU1VCVEVTVDogcHNyX2Jhc2ljCj4gwqAgKiBEZXNjcmlwdGlv bjogQmFzaWMgY2hlY2sgZm9yIHBzciBpZiBpdCBpcyBkZXRlY3RpbmcgY2hhbmdlcyBtYWRlCj4g aW4gcGxhbmVzCj4gwqAgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUsIHhlCj4gwqAgKiBGdW5j dGlvbmFsaXR5OiBwc3IKPiDCoCAqIE1lZ2EgZmVhdHVyZTogUFNSCj4gwqAgKiBUZXN0IGNhdGVn b3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QKPiDCoCAqCj4gLSAqIFNVQlRFU1Q6ICVzXyVzCj4gKyAq IFNVQlRFU1Q6IHBzcl8lc18lcwo+IMKgICogRGVzY3JpcHRpb246IENoZWNrIGlmIHBzciBpcyBk ZXRlY3RpbmcgbWVtb3J5IG1hcHBpbmcsIHJlbmRlcmluZwo+IGFuZCBwbGFuZQo+IMKgICrCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiAlYXJnWzFdCj4g wqAgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUKPiBAQCAtNjcsNyArNjcsNyBAQAo+IMKgICov Cj4gwqAKPiDCoC8qKgo+IC0gKiBTVUJURVNUOiBzcHJpdGVfcGxhbmVfbW92ZQo+ICsgKiBTVUJU RVNUOiBwc3Jfc3ByaXRlX3BsYW5lX21vdmUKPiDCoCAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBw c3IgaXMgZGV0ZWN0aW5nIG1lbW9yeSBtYXBwaW5nLCByZW5kZXJpbmcKPiBhbmQgcGxhbmUKPiDC oCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc3By aXRlIHBsYW5lcwo+IMKgICogRHJpdmVyIHJlcXVpcmVtZW50OiBpOTE1LCB4ZQo+IEBAIC03NSw3 ICs3NSw3IEBACj4gwqAgKiBNZWdhIGZlYXR1cmU6IFBTUgo+IMKgICogVGVzdCBjYXRlZ29yeTog ZnVuY3Rpb25hbGl0eSB0ZXN0Cj4gwqAgKgo+IC0gKiBTVUJURVNUOiAlc18lcwo+ICsgKiBTVUJU RVNUOiBwc3JfJXNfJXMKPiDCoCAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBwc3IgaXMgZGV0ZWN0 aW5nIG1lbW9yeSBtYXBwaW5nLCByZW5kZXJpbmcKPiBhbmQgcGxhbmUKPiDCoCAqwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gJWFyZ1sxXSBwbGFuZXMK PiDCoCAqIERyaXZlciByZXF1aXJlbWVudDogaTkxNSwgeGUKPiBAQCAtOTYsNyArOTYsNyBAQAo+ IMKgICovCj4gwqAKPiDCoC8qKgo+IC0gKiBTVUJURVNUOiBwcmltYXJ5XyVzCj4gKyAqIFNVQlRF U1Q6IHBzcl9wcmltYXJ5XyVzCj4gwqAgKiBEZXNjcmlwdGlvbjogQ2hlY2sgaWYgcHNyIGlzIGRl dGVjdGluZyBtZW1vcnkgbWFwcGluZywgcmVuZGVyaW5nCj4gYW5kIHBsYW5lCj4gwqAgKsKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uICVhcmdbMV0gcGxh bmVzCj4gwqAgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUsIHhlCj4gQEAgLTExMSw3ICsxMTEs NyBAQAo+IMKgICovCj4gwqAKPiDCoC8qKgo+IC0gKiBTVUJURVNUOiBkcG1zCj4gKyAqIFNVQlRF U1Q6IHBzcl9kcG1zCj4gwqAgKiBEZXNjcmlwdGlvbjogQ2hlY2sgaWYgcHNyIGlzIGRldGVjdGlu ZyBjaGFuZ2VzIHdoZW4gcmVuZGVyaW5nCj4gb3BlcmF0aW9uIGlzCj4gwqAgKsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHBlcmZvcm1lZMKgIHdpdGggZHBtcyBlbmFibGVkIG9yIGRpc2FibGVk Cj4gwqAgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUsIHhlCj4gQEAgLTExOSwxNCArMTE5LDE0 IEBACj4gwqAgKiBNZWdhIGZlYXR1cmU6IFBTUgo+IMKgICogVGVzdCBjYXRlZ29yeTogZnVuY3Rp b25hbGl0eSB0ZXN0Cj4gwqAgKgo+IC0gKiBTVUJURVNUOiBub19kcnJzCj4gKyAqIFNVQlRFU1Q6 IHBzcl9ub19kcnJzCj4gwqAgKiBEZXNjcmlwdGlvbjogQ2hlY2sgaWYgcHNyIGlzIGRldGVjdGlu ZyBjaGFuZ2VzIHdoZW4gZHJycyBpcwo+IGRpc2FibGVkCj4gwqAgKiBEcml2ZXIgcmVxdWlyZW1l bnQ6IGk5MTUsIHhlCj4gwqAgKiBGdW5jdGlvbmFsaXR5OiBkcnJzLCBwc3IKPiDCoCAqIE1lZ2Eg ZmVhdHVyZTogUFNSCj4gwqAgKiBUZXN0IGNhdGVnb3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QKPiDC oCAqCj4gLSAqIFNVQlRFU1Q6IHN1c3BlbmQKPiArICogU1VCVEVTVDogcHNyX3N1c3BlbmQKPiDC oCAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBwc3IgaXMgZGV0ZWN0aW5nIGNoYW5nZXMgd2hlbiBw bGFuZQo+IG9wZXJhdGlvbgo+IMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpcyBwZXJm b3JtZWQgd2l0aCBzdXNwZW5kIHJlc3VtZSBjeWNsZXMKPiDCoCAqIERyaXZlciByZXF1aXJlbWVu dDogaTkxNSwgeGUKPiBAQCAtMjI5LDYgKzIyOSwxMTIgQEAKPiDCoCAqIEBwbGFuZV9tb3ZlOsKg wqDCoMKgwqDCoMKgwqAgTW92ZSBwbGFuZSBwb3NpdGlvbgo+IMKgICovCj4gwqAKPiArLyoqCj4g KyAqIFNVQlRFU1Q6IHByX2RwbXMKPiArICogRGVzY3JpcHRpb246IENoZWNrIGlmIHByIGlzIGRl dGVjdGluZyBjaGFuZ2VzIHdoZW4gcmVuZGVyaW5nCj4gb3BlcmF0aW9uCj4gKyAqwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaXMgcGVyZm9ybWVkIHdpdGggZHBtcyBlbmFibGVkIG9yIGRpc2Fi bGVkCj4gKyAqIERyaXZlciByZXF1aXJlbWVudDogaTkxNSwgeGUKPiArICogRnVuY3Rpb25hbGl0 eTogZHBtcywgcHIKPiArICogTWVnYSBmZWF0dXJlOiBQYW5lbCBSZXBsYXkKPiArICogVGVzdCBj YXRlZ29yeTogZnVuY3Rpb25hbGl0eSB0ZXN0Cj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIFNVQlRF U1Q6IHByX25vX2RycnMKPiArICogRGVzY3JpcHRpb246IENoZWNrIGlmIHByIGlzIGRldGVjdGlu ZyBjaGFuZ2VzIHdoZW4gZHJycyBpcwo+IGRpc2FibGVkCj4gKyAqIERyaXZlciByZXF1aXJlbWVu dDogaTkxNSwgeGUKPiArICogRnVuY3Rpb25hbGl0eTogZHJycywgcHIKPiArICogTWVnYSBmZWF0 dXJlOiBQYW5lbCBSZXBsYXkKPiArICogVGVzdCBjYXRlZ29yeTogZnVuY3Rpb25hbGl0eSB0ZXN0 Cj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIFNVQlRFU1Q6IHByX3N1c3BlbmQKPiArICogRGVzY3Jp cHRpb246IENoZWNrIGlmIHByIGlzIGRldGVjdGluZyBjaGFuZ2VzIHdoZW4gcGxhbmUKPiBvcGVy YXRpb24gaXMKPiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwZXJmb3JtZWQgd2l0aCBz dXNwZW5kIHJlc3VtZSBjeWNsZXMKPiArICogRHJpdmVyIHJlcXVpcmVtZW50OiBpOTE1LCB4ZQo+ ICsgKiBGdW5jdGlvbmFsaXR5OiBwciwgc3VzcGVuZAo+ICsgKiBNZWdhIGZlYXR1cmU6IFBhbmVs IFJlcGxheQo+ICsgKiBUZXN0IGNhdGVnb3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QKPiArICovCj4g Kwo+ICsvKioKPiArICogU1VCVEVTVDogcHJfYmFzaWMKPiArICogRGVzY3JpcHRpb246IEJhc2lj IGNoZWNrIGZvciBwciBpZiBpdCBpcyBkZXRlY3RpbmcgY2hhbmdlcyBtYWRlCj4gaW4gcGxhbmVz Cj4gKyAqIERyaXZlciByZXF1aXJlbWVudDogaTkxNSwgeGUKPiArICogRnVuY3Rpb25hbGl0eTog cHIKPiArICogTWVnYSBmZWF0dXJlOiBQYW5lbCBSZXBsYXkKPiArICogVGVzdCBjYXRlZ29yeTog ZnVuY3Rpb25hbGl0eSB0ZXN0Cj4gKyAqLwo+ICsKPiArLyoqCj4gKyAqIFNVQlRFU1Q6IHByXyVz XyVzCj4gKyAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBwciBpcyBkZXRlY3RpbmcgbWVtb3J5IG1h cHBpbmcsIHJlbmRlcmluZwo+IGFuZCBwbGFuZQo+ICsgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uICVhcmdbMV0gcGxhbmVzCj4gKyAqIERyaXZlciBy ZXF1aXJlbWVudDogaTkxNQo+ICsgKiBGdW5jdGlvbmFsaXR5OiBrbXNfY29yZSwgcGxhbmUsIHBy Cj4gKyAqIE1lZ2EgZmVhdHVyZTogUGFuZWwgUmVwbGF5Cj4gKyAqIFRlc3QgY2F0ZWdvcnk6IGZ1 bmN0aW9uYWxpdHkgdGVzdAo+ICsgKgo+ICsgKiBhcmdbMV06Cj4gKyAqCj4gKyAqIEBjdXJzb3I6 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEN1cnNvciBwbGFuZQo+ICsgKiBAcHJpbWFyeTrCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIFByaW1hcnkgcGxhbmUKPiArICogQHNwcml0ZTrCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgU3ByaXRlIHBsYW5lCj4gKyAqCj4gKyAqIGFyZ1syXToKPiArICoKPiAr ICogQG1tYXBfY3B1OsKgwqDCoMKgwqDCoMKgwqDCoMKgIE1NQVAgQ1BVCj4gKyAqIEBtbWFwX2d0 dDrCoMKgwqDCoMKgwqDCoMKgwqDCoCBNTUFQIEdUVAo+ICsgKi8KPiArCj4gKy8qKgo+ICsgKiBT VUJURVNUOiBwcl9wcmltYXJ5X3BhZ2VfZmxpcAo+ICsgKiBEZXNjcmlwdGlvbjogQ2hlY2sgaWYg cHIgaXMgZGV0ZWN0aW5nIG1lbW9yeSBtYXBwaW5nLCByZW5kZXJpbmcKPiBhbmQgcGxhbmUKPiAr ICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiBwcmlt YXJ5IHBsYW5lcwo+ICsgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUsIHhlCj4gKyAqIEZ1bmN0 aW9uYWxpdHk6IHBsYW5lLCBwcgo+ICsgKiBNZWdhIGZlYXR1cmU6IFBhbmVsIFJlcGxheQo+ICsg KiBUZXN0IGNhdGVnb3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QKPiArICovCj4gKwo+ICsvKioKPiAr ICogU1VCVEVTVDogcHJfcHJpbWFyeV8lcwo+ICsgKiBEZXNjcmlwdGlvbjogQ2hlY2sgaWYgcHIg aXMgZGV0ZWN0aW5nIG1lbW9yeSBtYXBwaW5nLCByZW5kZXJpbmcKPiBhbmQgcGxhbmUKPiArICrC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiBwcmltYXJ5 IHBsYW5lcwo+ICsgKiBEcml2ZXIgcmVxdWlyZW1lbnQ6IGk5MTUsIHhlCj4gKyAqIEZ1bmN0aW9u YWxpdHk6IGttc19jb3JlLCBwbGFuZSwgcHIKPiArICogTWVnYSBmZWF0dXJlOiBQYW5lbCBSZXBs YXkKPiArICogVGVzdCBjYXRlZ29yeTogZnVuY3Rpb25hbGl0eSB0ZXN0Cj4gKyAqCj4gKyAqIGFy Z1sxXToKPiArICoKPiArICogQGJsdDrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQmxp dHRlcgo+ICsgKiBAcmVuZGVyOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSZW5kZXIKPiArICov Cj4gKwo+ICsvKioKPiArICogU1VCVEVTVDogcHJfJXNfJXMKPiArICogRGVzY3JpcHRpb246IENo ZWNrIGlmIHByIGlzIGRldGVjdGluZyBtZW1vcnkgbWFwcGluZywgcmVuZGVyaW5nCj4gYW5kIHBs YW5lCj4gKyAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3BlcmF0aW9ucyBwZXJmb3JtZWQg b24gJWFyZ1sxXSBwbGFuZXMKPiArICogRHJpdmVyIHJlcXVpcmVtZW50OiBpOTE1LCB4ZQo+ICsg KiBGdW5jdGlvbmFsaXR5OiBrbXNfY29yZSwgcGxhbmUsIHByCj4gKyAqIE1lZ2EgZmVhdHVyZTog UGFuZWwgUmVwbGF5Cj4gKyAqIFRlc3QgY2F0ZWdvcnk6IGZ1bmN0aW9uYWxpdHkgdGVzdAo+ICsg Kgo+ICsgKiBhcmdbMV06Cj4gKyAqCj4gKyAqIEBjdXJzb3I6wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIEN1cnNvciBwbGFuZQo+ICsgKiBAc3ByaXRlOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBT cHJpdGUgcGxhbmUKPiArICoKPiArICogYXJnWzJdOgo+ICsgKgo+ICsgKiBAYmx0OsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBCbGl0dGVyCj4gKyAqIEByZW5kZXI6wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIFJlbmRlcgo+ICsgKiBAcGxhbmVfb25vZmY6wqDCoMKgwqDCoMKgwqAgUGxh bmUgT24gb2ZmCj4gKyAqIEBwbGFuZV9tb3ZlOsKgwqDCoMKgwqDCoMKgwqAgTW92ZSBwbGFuZSBw b3NpdGlvbgo+ICsgKi8KPiArCj4gwqBlbnVtIG9wZXJhdGlvbnMgewo+IMKgwqDCoMKgwqDCoMKg wqBQQUdFX0ZMSVAsCj4gwqDCoMKgwqDCoMKgwqDCoE1NQVBfR1RULAo+IEBAIC0yNzEsNyArMzc3 LDkgQEAgdHlwZWRlZiBzdHJ1Y3Qgewo+IMKgwqDCoMKgwqDCoMKgwqBkcm1Nb2RlTW9kZUluZm8g Km1vZGU7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAqb3V0cHV0Owo+IMKgwqDCoMKg wqDCoMKgwqBib29sIHdpdGhfcHNyX2Rpc2FibGVkOwo+ICvCoMKgwqDCoMKgwqDCoGJvb2wgc3Vw cG9ydHNfcHNyOwo+IMKgwqDCoMKgwqDCoMKgwqBib29sIHN1cHBvcnRzX3BzcjI7Cj4gK8KgwqDC oMKgwqDCoMKgYm9vbCBzdXBwb3J0c19wcjsKPiDCoH0gZGF0YV90Owo+IMKgCj4gwqBzdGF0aWMg dm9pZCBjcmVhdGVfY3Vyc29yX2ZiKGRhdGFfdCAqZGF0YSkKPiBAQCAtMjg5LDM2ICszOTcsMzQg QEAgc3RhdGljIHZvaWQgY3JlYXRlX2N1cnNvcl9mYihkYXRhX3QgKmRhdGEpCj4gwqDCoMKgwqDC oMKgwqDCoGlndF9wdXRfY2Fpcm9fY3R4KGNyKTsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBz ZXR1cF9vdXRwdXQoZGF0YV90ICpkYXRhKQo+ICtzdGF0aWMgdm9pZCBzZXRfb3V0cHV0X3N1cHBv cnRzKGRhdGFfdCAqZGF0YSkKPiDCoHsKPiAtwqDCoMKgwqDCoMKgwqBpZ3RfZGlzcGxheV90ICpk aXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gwqDCoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAq b3V0cHV0Owo+IC3CoMKgwqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlOwo+IC0KPiAtwqDCoMKgwqDC oMKgwqBmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBpcGUsIG91dHB1 dCkgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1Nb2RlQ29ubmVjdG9yUHRy IGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWYgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9l RFApCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250 aW51ZTsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kaXNwbGF5X3Jl c2V0KGRpc3BsYXkpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlmICghaTkxNV9waXBlX291dHB1dF9jb21ib192YWxpZChkaXNwbGF5KSkKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo+IC0KPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS0+Y3J0Y19pZCA9IG91dHB1dC0+Y29uZmln LmNydGMtPmNydGNfaWQ7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEtPm91 dHB1dCA9IG91dHB1dDsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy bjsKPiArwqDCoMKgwqDCoMKgwqBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KCZkYXRhLT5kaXNw bGF5LCBvdXRwdXQpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmKHBzcl9z aW5rX3N1cHBvcnQoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5kZWJ1Z2ZzX2ZkLAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIFBTUl9NT0RFXzIsIG91dHB1dCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGF0 YS0+c3VwcG9ydHNfcHNyMiA9IHRydWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaWd0X2RlYnVnKCJQU1JfMiBzdXBwb3J0ZWQgb24gJXNcbiIsIG91 dHB1dC0KPiA+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVsc2UgaWYocHNyX3Npbmtfc3VwcG9ydChkYXRh LT5kcm1fZmQsIGRhdGEtCj4gPmRlYnVnZnNfZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBTUl9NT0RFXzEs IG91dHB1dCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEtPnN1cHBvcnRzX3BzciA9 IHRydWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp Z3RfZGVidWcoIlBTUl8xIHN1cHBvcnRlZCBvbiAlc1xuIiwgb3V0cHV0LQo+ID5uYW1lKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBlbHNlIGlmKHBzcl9zaW5rX3N1cHBvcnQoZGF0YS0+ZHJtX2ZkLCBkYXRhLQo+ID5k ZWJ1Z2ZzX2ZkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFBSX01PREUsIG91dHB1dCkpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZGF0YS0+c3VwcG9ydHNfcHIgPSB0cnVlOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2RlYnVnKCJQUiBzdXBwb3J0 ZWQgb24gJXNcbiIsIG91dHB1dC0KPiA+bmFtZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVsc2UKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZWJ1ZygiUFNSL1BT UjIvUFIgbm90IHN1cHBvcnRlZCBvbgo+ICVzXG4iLCBvdXRwdXQtPm5hbWUpOwo+IMKgwqDCoMKg wqDCoMKgwqB9Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIHZvaWQgZGlzcGxheV9pbml0KGRhdGFfdCAq ZGF0YSkKPiAtewo+IC3CoMKgwqDCoMKgwqDCoGlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEtPmRp c3BsYXksIGRhdGEtPmRybV9mZCk7Cj4gLcKgwqDCoMKgwqDCoMKgc2V0dXBfb3V0cHV0KGRhdGEp Owo+IC19Cj4gLQo+IMKgc3RhdGljIHZvaWQgZGlzcGxheV9maW5pKGRhdGFfdCAqZGF0YSkKPiDC oHsKPiDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlzcGxheSk7Cj4g QEAgLTUwMiw3ICs2MDgsNyBAQCBzdGF0aWMgdm9pZCBmYl9kaXJ0eV9mYl9pb2N0bChkYXRhX3Qg KmRhdGEsCj4gc3RydWN0IGlndF9mYiAqZmIpCj4gwqB9Cj4gwqAKPiDCoC8qKgo+IC0gKiBTVUJU RVNUOiBjdXJzb3JfcGxhbmVfbW92ZQo+ICsgKiBTVUJURVNUOiBwc3JfY3Vyc29yX3BsYW5lX21v dmUKPiDCoCAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBwc3IgaXMgZGV0ZWN0aW5nIHRoZSBwbGFu ZSBvcGVyYXRpb25zCj4gcGVyZm9ybWVkIG9uCj4gwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgY3Vyc29yIHBsYW5lcwo+IMKgICogRHJpdmVyIHJlcXVpcmVtZW50OiBpOTE1LCB4ZQo+IEBA IC01MTAsNyArNjE2LDcgQEAgc3RhdGljIHZvaWQgZmJfZGlydHlfZmJfaW9jdGwoZGF0YV90ICpk YXRhLAo+IHN0cnVjdCBpZ3RfZmIgKmZiKQo+IMKgICogRnVuY3Rpb25hbGl0eTogcHNyCj4gwqAg KiBNZWdhIGZlYXR1cmU6IFBTUgo+IMKgICoKPiAtICogU1VCVEVTVDogcHJpbWFyeV9wYWdlX2Zs aXAKPiArICogU1VCVEVTVDogcHNyX3ByaW1hcnlfcGFnZV9mbGlwCj4gwqAgKiBEZXNjcmlwdGlv bjogQ2hlY2sgaWYgcHNyIGlzIGRldGVjdGluZyBwYWdlLWZsaXBwaW5nIG9wZXJhdGlvbnMKPiBw ZXJmb3JtZWQKPiDCoCAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBvbiBwcmltYXJ5IHBsYW5l cwo+IMKgICogRHJpdmVyIHJlcXVpcmVtZW50OiBpOTE1LCB4ZQo+IEBAIC01MTgsNyArNjI0LDcg QEAgc3RhdGljIHZvaWQgZmJfZGlydHlfZmJfaW9jdGwoZGF0YV90ICpkYXRhLAo+IHN0cnVjdCBp Z3RfZmIgKmZiKQo+IMKgICogRnVuY3Rpb25hbGl0eTogcHNyCj4gwqAgKiBNZWdhIGZlYXR1cmU6 IFBTUgo+IMKgICoKPiAtICogU1VCVEVTVDogc3ByaXRlX3BsYW5lX29ub2ZmCj4gKyAqIFNVQlRF U1Q6IHBzcl9zcHJpdGVfcGxhbmVfb25vZmYKPiDCoCAqIERlc2NyaXB0aW9uOiBDaGVjayBpZiBw c3IgaXMgZGV0ZWN0aW5nIHRoZSBwbGFuZSBvcGVyYXRpb25zCj4gcGVyZm9ybWVkIG9uCj4gwqAg KsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3ByaXRlIHBsYW5lcwo+IMKgICogRHJpdmVyIHJl cXVpcmVtZW50OiBpOTE1LCB4ZQo+IEBAIC02ODMsMTUgKzc4OSwzNiBAQCBzdGF0aWMgdm9pZCBz ZXR1cF90ZXN0X3BsYW5lKGRhdGFfdCAqZGF0YSwgaW50Cj4gdGVzdF9wbGFuZSkKPiDCoMKgwqDC oMKgwqDCoMKgaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKPiDCoH0KPiDCoAo+ ICtzdGF0aWMgZW51bSBwaXBlIGdldF9waXBlX2Zvcl9vdXRwdXQoaWd0X2Rpc3BsYXlfdCAqZGlz cGxheSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiArewo+ICvCoMKg wqDCoMKgwqDCoCBlbnVtIHBpcGUgcGlwZTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgIGZvcl9lYWNo X3BpcGUoZGlzcGxheSwgcGlwZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKSB7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHBpcGU7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgIH0KPiArCj4g K8KgwqDCoMKgwqDCoMKgIGlndF9hc3NlcnRfZihmYWxzZSwgIk5vIHBpcGUgZm91bmQgZm9yIG91 dHB1dCAlc1xuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp Z3Rfb3V0cHV0X25hbWUob3V0cHV0KSk7Cj4gK30KPiArCj4gwqBzdGF0aWMgdm9pZCB0ZXN0X3Nl dHVwKGRhdGFfdCAqZGF0YSkKPiDCoHsKPiArwqDCoMKgwqDCoMKgwqBlbnVtIHBpcGUgcGlwZTsK PiDCoMKgwqDCoMKgwqDCoMKgZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3I7Cj4gwqDCoMKg wqDCoMKgwqDCoGJvb2wgcHNyX2VudGVyZWQgPSBmYWxzZTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKg wqBpZ3RfcmVxdWlyZV9mKGRhdGEtPm91dHB1dCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIk5vIGF2YWlsYWJsZSBvdXRwdXQgZm91bmRcbiIpOwo+IMKgCj4g K8KgwqDCoMKgwqDCoMKgZGF0YS0+Y3J0Y19pZCA9IGRhdGEtPm91dHB1dC0+Y29uZmlnLmNydGMt PmNydGNfaWQ7Cj4gwqDCoMKgwqDCoMKgwqDCoGNvbm5lY3RvciA9IGRhdGEtPm91dHB1dC0+Y29u ZmlnLmNvbm5lY3RvcjsKPiArwqDCoMKgwqDCoMKgwqBwaXBlID0gZ2V0X3BpcGVfZm9yX291dHB1 dCgmZGF0YS0+ZGlzcGxheSwgZGF0YS0+b3V0cHV0KTsKPiArwqDCoMKgwqDCoMKgwqBpZ3Rfb3V0 cHV0X3NldF9waXBlKGRhdGEtPm91dHB1dCwgcGlwZSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X3Jl cXVpcmVfZihpOTE1X3BpcGVfb3V0cHV0X2NvbWJvX3ZhbGlkKCZkYXRhLT5kaXNwbGF5KSwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAib3V0cHV0IHBpcGUgY29t Ym8gbm90IHZhbGlkXG4iKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBmb3IgKGludCBpID0gMDsg aSA8IGNvbm5lY3Rvci0+Y291bnRfbW9kZXM7IGkrKykgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZGF0YS0+bW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+IEBAIC03NDcs MTE1ICs4NzQsMTc5IEBAIGRhdGFfdCBkYXRhID0ge307Cj4gwqAKPiDCoGlndF9tYWluX2FyZ3Mo IiIsIGxvbmdfb3B0aW9ucywgaGVscF9zdHIsIG9wdF9oYW5kbGVyLCAmZGF0YSkKPiDCoHsKPiAr wqDCoMKgwqDCoMKgwqBpbnQgejsKPiDCoMKgwqDCoMKgwqDCoMKgZW51bSBvcGVyYXRpb25zIG9w Owo+IC3CoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIgKmFwcGVuZF9zdWJ0ZXN0X25hbWVbMl0gPSB7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCIiLAo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAicHNyMl8iCj4gK8KgwqDCoMKgwqDCoMKgY29uc3QgY2hhciAqYXBwZW5k X3N1YnRlc3RfbmFtZVszXSA9IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgInBz cl8iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAicHNyMl8iLAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAicHJfIgo+IMKgwqDCoMKgwqDCoMKgwqB9Owo+ICvCoMKg wqDCoMKgwqDCoGludCBtb2Rlc1tdID0ge1BTUl9NT0RFXzEsIFBTUl9NT0RFXzIsIFBSX01PREV9 Owo+ICvCoMKgwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAqb3V0cHV0Owo+IMKgCj4gwqDCoMKgwqDC oMKgwqDCoGlndF9maXh0dXJlIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRh dGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwgfAo+IERSSVZF Ul9YRSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLmRlYnVnZnNfZmQg PSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOwo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5kZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS5k cm1fZmQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLmJvcHMgPSBidWZf b3BzX2NyZWF0ZShkYXRhLmRybV9mZCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzZXRfb3V0cHV0X3N1cHBvcnRzKCZkYXRhKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5zdXBwb3J0c19wc3IyID0gZGF0YS5z dXBwb3J0c19wc3IyIHwKPiBzaW5rX3N1cHBvcnQoJmRhdGEsIFBTUl9NT0RFXzIpOwo+IMKgCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9yZXF1aXJlX2Yoc2lua19zdXBwb3J0 KCZkYXRhLCBQU1JfTU9ERV8xKSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1JcbiIpOwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWd0X3JlcXVpcmVfZihkYXRhLnN1cHBv cnRzX3BzciB8fAo+IGRhdGEuc3VwcG9ydHNfcHNyMiB8fCBkYXRhLnN1cHBvcnRzX3ByLAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICJTaW5rIGRvZXMgbm90IHN1cHBvcnQKPiBQU1IvUFNSMi9QUlxuIik7CgpDaGFuZ2Ugc2V0X291 dHB1dF9zdXBwb3J0cygpIGFzIG91dHB1dF9zdXBwb3J0c19wc3IgYW5kIGp1c3QgbG9vcAp0aHJv dWdoIG91dHB1dHMgdGhlcmUuIGlmIG5vbmUgb2YgdGhlbSBzdXBwb3J0IHByL3Bzci9wc3IyIHJl dHVybgpmYWxzZS4gVGhlbjoKCmlndF9yZXF1aXJlX2Yob3V0cHV0X3N1cHBvcnRzX3BzcigmZGF0 YSksICJTaW5rIGRvZXMgbm90IHN1cHBvcnQKUFNSL1BTUjIvUFJcbiIpOwoKQlIsCgpKb3VuaSBI w7ZnYW5kZXIKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLnN1cHBv cnRzX3BzcjIgPSBzaW5rX3N1cHBvcnQoJmRhdGEsIFBTUl9NT0RFXzIpOwo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLmJvcHMgPSBidWZfb3BzX2NyZWF0ZShkYXRhLmRybV9m ZCk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRpc3BsYXlfaW5pdCgmZGF0YSk7 Cj4gwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+IC3CoMKgwqDCoMKgwqDCoGZvciAoZGF0YS5vcF9w c3JfbW9kZSA9IFBTUl9NT0RFXzE7IGRhdGEub3BfcHNyX21vZGUgPD0KPiBQU1JfTU9ERV8yOwo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEub3BfcHNyX21vZGUrKykgewo+ICvCoMKgwqDC oMKgwqDCoGZvciAoeiA9IDA7IHogPCBBUlJBWV9TSVpFKG1vZGVzKTsgeisrKSB7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3BfcHNyX21vZGUgPSBtb2Rlc1t6XTsKPiA+ IC0gICAgICAgICAgICBkYXRhLm9wX3Bzcl9tb2RlKyspCj4ge8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlndF9zdWJ0ZXN0X2YoIiVzYmFzaWMiLAo+IGFwcGVuZF9zdWJ0ZXN0X25hbWVbZGF0YS5v cF9wc3JfbW9kZV0pIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlk7Cj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZk YXRhKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRl c3RfY2xlYW51cCgmZGF0YSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9z dWJ0ZXN0X3dpdGhfZHluYW1pY19mKCIlc2Jhc2ljIiwKPiBhcHBlbmRfc3VidGVzdF9uYW1lW3pd KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3Jf ZWFjaF9jb25uZWN0ZWRfb3V0cHV0KCZkYXRhLmRpc3BsYXksCj4gb3V0cHV0KSB7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKCFwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+IGRhdGEuZGVidWdmc19mZCwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBkYXRhLm9w X3Bzcl9tb2RlLCBvdXRwdXQpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250aW51ZTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfZGlzcGxheV9yZXNldCgmZGF0YS5kaXNwbGF5KTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLm91dHB1 dCA9IG91dHB1dDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZHluYW1pY19mKCIlcyIsIGRhdGEub3V0cHV0LQo+ID5u YW1lKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9Cj4gRFJN X1BMQU5FX1RZUEVfUFJJTUFSWTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9zZXR1cCgm ZGF0YSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3RfY2xlYW51cCgmZGF0YSk7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgfQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIkNoZWNrIGlmIHBzciBpcyBkZXRlY3Rpbmcg Y2hhbmdlcyB3aGVuCj4gZHJycyBpcyBkaXNhYmxlZCIpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZ3Rfc3VidGVzdF9mKCIlc25vX2RycnMiLAo+IGFwcGVuZF9zdWJ0ZXN0X25h bWVbZGF0YS5vcF9wc3JfbW9kZV0pIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9IERSTV9QTEFORV9UWVBFX1BSSU1B Ulk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0 X3NldHVwKCZkYXRhKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlndF9hc3NlcnQoZHJyc19kaXNhYmxlZCgmZGF0YSkpOwo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX2Yo IiVzbm9fZHJycyIsCj4gYXBwZW5kX3N1YnRlc3RfbmFtZVt6XSkgewo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZm9yX2VhY2hfY29ubmVjdGVkX291dHB1 dCgmZGF0YS5kaXNwbGF5LAo+IG91dHB1dCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghcHNyX3Npbmtfc3VwcG9y dChkYXRhLmRybV9mZCwKPiBkYXRhLmRlYnVnZnNfZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gZGF0YS5vcF9wc3JfbW9kZSwgb3V0cHV0KSkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGludWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlndF9kaXNwbGF5X3Jl c2V0KCZkYXRhLmRpc3BsYXkpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLm91dHB1dCA9IG91dHB1dDsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWd0X2R5bmFtaWNfZigiJXMiLCBkYXRhLm91dHB1dC0KPiA+bmFtZSkgewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBkYXRhLnRlc3RfcGxhbmVfaWQgPQo+IERSTV9QTEFORV9UWVBFX1BSSU1B Ulk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3Rfc2V0dXAoJmRhdGEpOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KGRycnNfZGlzYWJsZWQoJmRhdAo+IGEpKTsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZvciAob3AgPSBQQUdFX0ZMSVA7IG9wIDw9IFJFTkRFUjsgb3ArKykgewo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kZXNjcmliZSgiQ2hl Y2sgaWYgcHNyIGlzIGRldGVjdGluZyBwYWdlLQo+IGZsaXBwaW5nLG1lbW9yeSBtYXBwaW5nIGFu ZCAiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAicmVuZGVyaW5nIG9wZXJhdGlvbnMKPiBwZXJm b3JtZWQgb24gcHJpbWFyeSBwbGFuZXMiKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X2YoIiVzcHJpbWFyeV8lcyIsCj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoAo+IGFwcGVuZF9zdWJ0ZXN0X25hbWVbZGF0YS5vcF9wc3JfbW9kZV0sCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVzdF93 aXRoX2R5bmFtaWNfZigiJXNwcmltYXJ5XyVzIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFwcGVuZF9z dWJ0ZXN0X25hbWVbel0sCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3Bfc3RyKG9wKSkgewo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZ3Rfc2tpcF9vbihpc194ZV9kZXZpY2UoZGF0YS5kcm1fZmQpCj4gJiYKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAob3AgPT0gTU1BUF9DUFUgfHwgb3AgPT0KPiBNTUFQX0dUVCkp Owo+IC0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBkYXRhLm9wID0gb3A7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS50ZXN0X3BsYW5lX2lkID0K PiBEUk1fUExBTkVfVFlQRV9QUklNQVJZOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3Rfc2V0dXAoJmRhdGEpOwo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHJ1bl90ZXN0KCZkYXRhKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X2NsZWFudXAoJmRhdGEpOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGZvcl9lYWNoX2Nvbm5lY3RlZF9vdXRwdXQoJmRhdGEuZGlzcGwKPiBheSwgb3V0cHV0KSB7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmCj4gKCFwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2Zk LCBkYXRhLmRlYnVnZnNfZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IGRhdGEub3BfcHNyX21vZGUsIG91dHB1dCkp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250aW51ZTsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rpc3BsYXlfcmVzZXQoJmRhdGEuZGlzcGwKPiBheSk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3V0cHV0ID0gb3V0cHV0Owo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZ3RfZHluYW1pY19mKCIlcyIsCj4gZGF0YS5vdXRwdXQtPm5hbWUpIHsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3AgPSBvcDsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9Cj4g RFJNX1BMQU5FX1RZUEVfUFJJTUFSWTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHRlc3Rfc2V0dXAoJmRhdGEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcnVuX3Rlc3QoJmRhdGEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZvciAob3AgPSBNTUFQX0dUVDsgb3AgPD0gUExBTkVfT05P RkY7IG9wKyspIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZ3RfZGVzY3JpYmUoIkNoZWNrIGlmIHBzciBpcyBkZXRlY3RpbmcKPiBtZW1vcnkgbWFw cGluZyxyZW5kZXJpbmcgIgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgImFuZCBwbGFuZSBvcGVy YXRpb25zCj4gcGVyZm9ybWVkIG9uIHNwcml0ZSBwbGFuZXMiKTsKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X2YoIiVzc3ByaXRlXyVz IiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gYXBwZW5kX3N1YnRlc3RfbmFtZVtkYXRhLm9wX3Bzcl9t b2RlXSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGln dF9zdWJ0ZXN0X3dpdGhfZHluYW1pY19mKCIlc3Nwcml0ZV8lcyIsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBhcHBlbmRfc3VidGVzdF9uYW1lW3pdLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9wX3N0cihvcCkp IHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWd0X3NraXBfb24oaXNfeGVfZGV2aWNlKGRhdGEuZHJtX2ZkKQo+ICYmCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG9wID09IE1NQVBfQ1BVIHx8IG9wID09Cj4g TU1BUF9HVFQpKTsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5vcCA9IG9wOwo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEudGVzdF9w bGFuZV9pZCA9Cj4gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZk YXRhKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBydW5fdGVzdCgmZGF0YSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9jbGVhbnVwKCZkYXRh KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KCZkYXRhLmRpc3BsCj4gYXksIG91 dHB1dCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZgo+ICghcHNyX3Npbmtfc3VwcG9ydChk YXRhLmRybV9mZCwgZGF0YS5kZWJ1Z2ZzX2ZkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBkYXRhLm9wX3Bzcl9tb2Rl LCBvdXRwdXQpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGlu dWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9kaXNwbGF5X3Jlc2V0KCZkYXRhLmRpc3Bs Cj4gYXkpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLm91dHB1dCA9IG91dHB1dDsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2R5bmFtaWNfZigiJXMiLAo+IGRhdGEub3V0cHV0LT5u YW1lKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLm9wID0g b3A7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLnRlc3RfcGxh bmVfaWQgPQo+IERSTV9QTEFORV9UWVBFX09WRVJMQVk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJ1bl90ZXN0KCZkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHRlc3RfY2xlYW51cCgmZGF0YSk7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaWd0X2Rlc2NyaWJlKCJDaGVjayBpZiBwc3IgaXMgZGV0ZWN0aW5nCj4gbWVt b3J5IG1hcHBpbmcsIHJlbmRlcmluZyAiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAiYW5kIHBs YW5lIG9wZXJhdGlvbnMKPiBwZXJmb3JtZWQgb24gY3Vyc29yIHBsYW5lcyIpOwo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3RfZigiJXNj dXJzb3JfJXMiLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBhcHBlbmRfc3VidGVzdF9uYW1lW2RhdGEu b3BfcHNyX21vZGVdLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX2YoIiVzY3Vyc29yXyVzIiwKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGFwcGVuZF9zdWJ0ZXN0X25hbWVbel0sCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3Bf c3RyKG9wKSkgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc2tpcF9vbihpc194ZV9kZXZpY2UoZGF0YS5kcm1fZmQp Cj4gJiYKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAob3AgPT0gTU1BUF9DUFUgfHwg b3AgPT0KPiBNTUFQX0dUVCkpOwo+IC0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLm9wID0gb3A7Cj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0 YS50ZXN0X3BsYW5lX2lkID0KPiBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9z ZXR1cCgmZGF0YSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcnVuX3Rlc3QoJmRhdGEpOwo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3RfY2xlYW51 cCgmZGF0YSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZm9yX2VhY2hfY29ubmVjdGVkX291dHB1dCgmZGF0YS5kaXNwbAo+ IGF5LCBvdXRwdXQpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYKPiAoIXBzcl9zaW5rX3N1 cHBvcnQoZGF0YS5kcm1fZmQsIGRhdGEuZGVidWdmc19mZCwKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gZGF0YS5vcF9w c3JfbW9kZSwgb3V0cHV0KSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGNvbnRpbnVlOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGlzcGxheV9yZXNldCgmZGF0 YS5kaXNwbAo+IGF5KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0YS5vdXRwdXQgPSBvdXRw dXQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9keW5hbWljX2YoIiVzIiwKPiBkYXRhLm91 dHB1dC0+bmFtZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGF0 YS50ZXN0X3BsYW5lX2lkID0KPiBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZkYXRhKTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJ1bl90ZXN0KCZkYXRhKTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3RfY2xlYW51cCgmZGF0YSk7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfZGVzY3JpYmUoIkNo ZWNrIGlmIHBzciBpcyBkZXRlY3RpbmcgY2hhbmdlcyB3aGVuCj4gcmVuZGVyaW5nIG9wZXJhdGlv biBpcyBwZXJmb3JtZWQiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCLCoCB3aXRoIGRwbXMgZW5hYmxlZCBvciBkaXNhYmxl ZCIpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVzdF9mKCIlc2Rw bXMiLAo+IGFwcGVuZF9zdWJ0ZXN0X25hbWVbZGF0YS5vcF9wc3JfbW9kZV0pIHsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3AgPSBSRU5ERVI7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLnRl c3RfcGxhbmVfaWQgPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOwo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9zZXR1cCgmZGF0YSk7Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcG1zX29mZl9vbigmZGF0 YSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBydW5f dGVzdCgmZGF0YSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB0ZXN0X2NsZWFudXAoJmRhdGEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfZigiJXNkcG1zIiwKPiBhcHBlbmRfc3VidGVzdF9u YW1lW3pdKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KCZkYXRhLmRpc3BsYXksCj4gb3V0cHV0KSB7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgaWYgKCFwc3Jfc2lua19zdXBwb3J0KGRhdGEuZHJtX2ZkLAo+IGRhdGEuZGVidWdmc19m ZCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBk YXRhLm9wX3Bzcl9tb2RlLCBvdXRwdXQpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250aW51 ZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWd0X2Rpc3BsYXlfcmVzZXQoJmRhdGEuZGlzcGxheSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRh dGEub3V0cHV0ID0gb3V0cHV0Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZ3RfZHluYW1pY19mKCIlcyIsIGRhdGEub3V0 cHV0LQo+ID5uYW1lKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEub3AgPSBSRU5ERVI7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9Cj4gRFJNX1BMQU5F X1RZUEVfUFJJTUFSWTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9zZXR1cCgmZGF0YSk7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRwbXNfb2ZmX29uKCZkYXRhKTsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcnVuX3Rlc3QoJmRhdGEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0 X2NsZWFudXAoJmRhdGEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0K PiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X2Rlc2NyaWJlKCJDaGVj ayBpZiBwc3IgaXMgZGV0ZWN0aW5nIGNoYW5nZXMgd2hlbgo+IHBsYW5lIG9wZXJhdGlvbiBpcyBw ZXJmb3JtZWQgIgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAid2l0aCBzdXNwZW5kIHJlc3VtZSBjeWNsZXMiKTsKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3RfZigiJXNzdXNwZW5kIiwKPiBh cHBlbmRfc3VidGVzdF9uYW1lW2RhdGEub3BfcHNyX21vZGVdKSB7Cj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLm9wID0gUExBTkVfT05PRkY7Cj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhLnRlc3Rf cGxhbmVfaWQgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZkYXRhKTsKPiAtCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zeXN0ZW1fc3VzcGVu ZF9hdXRvcmVzdW1lKFNVU1BFTkRfU1RBVEVfTUVNCj4gLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IFNVU1BFTkRfVEVTVF9OT05FKTsKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9hc3NlcnQocHNy X3dhaXRfZW50cnlfaWZfZW5hYmxlZCgmZGF0YSkpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcnVuX3Rlc3QoJmRhdGEpOwo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX2Yo IiVzc3VzcGVuZCIsCj4gYXBwZW5kX3N1YnRlc3RfbmFtZVt6XSkgewo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZm9yX2VhY2hfY29ubmVjdGVkX291dHB1 dCgmZGF0YS5kaXNwbGF5LAo+IG91dHB1dCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghcHNyX3Npbmtfc3VwcG9y dChkYXRhLmRybV9mZCwKPiBkYXRhLmRlYnVnZnNfZmQsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gZGF0YS5vcF9wc3JfbW9kZSwgb3V0cHV0KSkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGludWU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlndF9kaXNwbGF5X3Jl c2V0KCZkYXRhLmRpc3BsYXkpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkYXRhLm91dHB1dCA9IG91dHB1dDsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWd0X2R5bmFtaWNfZigiJXMiLCBkYXRhLm91dHB1dC0KPiA+bmFtZSkgewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBkYXRhLm9wID0gUExBTkVfT05PRkY7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGRhdGEudGVzdF9wbGFuZV9pZCA9Cj4gRFJNX1BMQU5FX1RZUEVfQ1VSU09SOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB0ZXN0X3NldHVwKCZkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUKPiAoU1VTUEVORF9TVEFURV9NRU0sCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiBTVVNQRU5EX1RFU1RfTk9ORSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGlndF9hc3NlcnQocHNyX3dhaXRfZW50cnlfaWZfCj4gZW5hYmxlZCgmZGF0 YSkpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBydW5fdGVzdCgmZGF0YSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHRlc3RfY2xlYW51cCgmZGF0YSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKCg==